2.4. オブジェクトファイルの連結
オブジェクトファイルを連結して、プロジェクト全体ではなく、変更を含むソースファイルのみをコンパイルできます。
複数のソースファイルで設定されるプロジェクトで作業する場合は、Clang コンパイラーを使用して各ソースファイルのオブジェクトファイルをコンパイルします。次のステップとして、これらのオブジェクトファイルを連結します。Clang は、リンクされたオブジェクトファイルを含む実行ファイルを自動的に生成します。コンパイル後に、オブジェクトファイルを再度リンクします。
C++ プログラムをコンパイルするには、clang
の代わりに clang++
を使用します。
手順
ソースファイルをオブジェクトファイルにコンパイルするには、以下のコマンドを実行します。
Red Hat Enterprise Linux 8 の場合
$ clang -o <object_file> -c <source_file>
-
<object_file>
をオブジェクトファイルの名前に置き換え、<source_file>
をソースファイルの名前に置き換えます。
-
Red Hat Enterprise Linux 9 の場合
$ clang -o <object_file> -c <source_file>
-
<object_file>
をオブジェクトファイルの名前に置き換え、<source_file>
をソースファイルの名前に置き換えます。
-
オブジェクトファイルをリンクするには、以下のコマンドを実行します。
Red Hat Enterprise Linux 8 の場合
$ clang -o <output_file> <object_file_0> <object_file_1>
-
<output_file>
を出力ファイルの必要な名前に置き換え、<object_file>
をリンクするオブジェクトファイルの名前に置き換えます。
-
Red Hat Enterprise Linux 9 の場合
$ clang -o <output_file> <object_file_0> <object_file_1>
-
<output_file>
を出力ファイルの必要な名前に置き換え、<object_file>
をリンクするオブジェクトファイルの名前に置き換えます。
-
現時点では、Red Hat Enterprise Linux の複数のバージョンでの実行に対応するために、特定のライブラリー機能は LLVM Toolset で構築されたアプリケーションに静的にリンクされています。これにより、セキュリティーリスクが小さくなります。このリスクによりアプリケーションを再構築する必要がある場合、Red Hat はセキュリティーエラータを発行します。
Red Hat は、アプリケーション全体を静的にリンクしないことを推奨します。