インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス

リンクツールとオプション

ここでは、インテルが提供するリンクツール、xild (Linux* および macOS*) と xilink (Windows*) を使用する方法を説明します。

インテルのリンクツールは、プラットフォームごとに動作が異なります。次のセクションでは、リンク動作の主な違いをまとめています。

リンク動作のまとめ (Linux* および macOS*)

IR (中間表現) を含むオブジェクトが見つかった場合、リンクツールはインテル® C++ コンパイラーを起動して IPO を実行します。これらは擬似オブジェクトです。GNU* ld を起動してアプリケーションをリンクします。

xild のコマンドラインの構文は、GNU* リンカーと同じです。

xild [<options>] <normal command-line>
説明:
  • [<options>]: xild でのみサポートされる 1 つまたは複数のオプションです。(オプション)

  • <normal command-line> は、ld の有効な引数のセットを含むリンカー・コマンドラインです。

IPO を使用して app を作成する場合、o[filename]オプションを次のように使用します。

xild -qipo-fas -oapp a.o b.o c.o

リンクツールは、IR を含むオブジェクトの IPO を実行するためにインテル® コンパイラーを呼び出し、リンクされるオブジェクトの新しい一覧を生成します。そして、リンカーは ld を呼び出して新しいリストで指定されたオブジェクト・ファイルにリンクし、o オプションで指定されたアプリケーションを生成します。リンカーは、ipo[n] および ipo-separate オプションをサポートします。

xild からサポートされているリンクオプションのリストを表示するには、次のコマンドを使用します。

$ xild -qhelp

リンク動作のまとめ (Windows*)

IR (中間表現) を含むオブジェクトが見つかった場合、リンクツールはインテル® C++ コンパイラーを起動して複数ファイル IPO を実行します。これらは擬似オブジェクトです。Microsoft* リンカー link.exe を起動し、アプリケーションをリンクします。

インテル・リンカーのコマンドライン構文は、Microsoft* リンカーと同じです。

xilink [<options>] <normal command-line>
説明:
  • [<options>]: xilink でのみサポートされる 1 つまたは複数のオプションです。(オプション)

  • <normal command-line> は、Microsoft* リンカーの有効な引数のセットを含むリンカー・コマンドラインです。

複数ファイル IPO の実行ファイルを ipo_file.exe に格納するには、リンカーオプション out:filename を使用します。次に例を示します。

xilink -qipo-fas /out:ipo_file.exe a.obj b.obj c.obj

リンカーは、IR を含むオブジェクトの IPO を実行するためにインテル® コンパイラーを呼び出し、リンクされるオブジェクトの新しい一覧を生成します。リンカーは、Microsoft* link.exe を呼び出し、新しいリストで指定されたオブジェクト・ファイルにリンクして、out:[:filename] リンカーオプションで指定されたアプリケーションを生成します。

xilink からサポートされているリンクオプションのリストを表示するには、次のコマンドを使用します。

>> xilink /qhelp

xilink.exe では link.exe のすべてのオプションを使用することができ、最後のリンク段階で link.exe に渡されます。

リンクツールの使用

次のような状況の場合、インテルが提供するリンクツールを使用してアプリケーションをリンクする必要があります。

リンカーオプション

次の表は、リンクオプションに関する情報を示したものです。

リンクツールのオプション

説明

qdiag-[type]=[diag-list]

診断情報の表示を制御します。

type は診断に対して行う処理です。設定可能な値は以下のとおりです。

  • 有効: 診断メッセージまたはメッセージのグループを有効にします。

  • 無効: 診断メッセージまたはメッセージのグループを無効にします。

diag-list は診断グループまたは ID の値です。設定可能な値は以下のとおりです。

  • thread: プログラムのスレッド化に役立つ診断メッセージを指定します。

  • vec: ベクトル化によって発行される診断メッセージを指定します。

  • par: 自動並列化 (並列化による最適化) によって発行される診断メッセージを指定します。

  • openmp: OpenMP* 並列化によって発行される診断メッセージを指定します。

  • warn: 重要度が "warning" (警告) の診断メッセージを指定します。

  • error: 重要度が "error" (エラー) の診断メッセージを指定します。

  • remark: リマークまたはコメントの診断メッセージを指定します。

  • cpu-dispatch: 診断メッセージの CPU ディスパッチ・リマークを指定します。デフォルトでは、これらのリマークは有効です。

  • id[,id,...]: 1 つまたは複数のメッセージの ID を指定します。複数のメッセージ ID を指定する場合は、各メッセージ ID をカンマで区切る必要があります。各 id の間にはスペースを入れないでください。

  • tag[,tag,...]: 1 つまたは複数のメッセージの簡略名を指定します。複数の簡略名を指定する場合は、各簡略名をカンマで区切る必要があります。各 tag の間にはスペースを入れないでください。

このオプションにより生成される診断メッセージは、/arch (Windows*)、-m (Linux* および macOS*)、または [Q]x などの一部のオプションによる影響を受けます。

m32m64 (Windows*)

Qm32Qm64 (Linux* および macOS*)

[Q]m32: IA-32 アーキテクチャー用のコードを生成します。

[Q]m64: インテル® 64 アーキテクチャー用のコードを生成します。

例えば、インテル® 64 アーキテクチャー向けに構成されたコンパイル環境で [Q]m32 を使用する場合、IPO コンパイルや最終リンクで適切なターゲットが設定されるように、リンカーのコマンドラインでも qm32 を使用する必要があります。

関連情報