マルチファイル IPO 実行ファイルの作成

ここでは、「コマンドラインによる IPO 実行ファイルの作成」で指定された方法の代わりに、インテル(R) リンカー (xild (Linux*) または xilink (Windows*)) を使用する方法を説明します。

インテル・リンカーの動作は、プラットフォームにより異なります。次の表に、主な相違点を示します。

Linux の動作のまとめ

IR を含むオブジェクトが見つかった場合、コンパイラーを起動して IPO を実行します。GCC ld を起動して、アプリケーションをリンクします。

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

xild [<options>] <LINK_commandline>

各アイテムの意味は次のとおりです。

  • [<options>] (オプション) には、あらゆる GCC リンカーオプション、または xild でのみサポートされるオプションを含めることができます。

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

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

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

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

Windows の動作のまとめ

IR を含むオブジェクトが見つかった場合、インテル(R) コンパイラーを起動してマルチファイル IPO を実行します。Microsoft* link.exe を起動し、アプリケーションをリンクします。

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

xilink [<options>] <LINK_commandline>

各アイテムの意味は次のとおりです。

  • [<options>] (オプション) には、あらゆる Microsoft リンカーオプション、または xilink.exe でのみサポートされるオプションを含めることができます。

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

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

xilink /out:ipo_file.exe a.obj b.obj c.obj

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

使用規則

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

インテル・リンカー・オプション

インテル・リンカーがサポートしている追加オプションは、マルチファイル IPO の結果を検証するために使用することができます。

Windows

Linux

オプションの説明

/qipo_fa[{file|dir/}]

-qipo_fa[file.s]

マルチファイル IPO コンパイルのアセンブリー・リストを生成します。リストファイルの名前またはファイルを配置するディレクトリー (バックスラッシュ付き) を指定します。

デフォルトのリスト名はプラットフォームに依存します。

  • Linux: ipo_out.s

  • Windows: ipo_out.asm

/qipo_fo[{file|dir/}]

-qipo_fo[file.o]

マルチファイル IPO コンパイルのオブジェクト・ファイルを生成します。オブジェクト・ファイルの名前またはファイルを配置するディレクトリー (バックスラッシュ付き) を指定します。

デフォルトのオブジェクト・ファイル名はプラットフォームに依存します。

  • Linux: ipo_out.o

  • Windows: ipo_out.obj

/qipo_fas

対応するオプションはありません

アセンブリー・リストにソース行を追加します。

/qipo_fac

-ipo-fcode-asm

アセンブリー・リストにコードバイトを追加します。

/qipo_facs

対応するオプションはありません

アセンブリー・リストにコードバイトおよびソース行を追加します。

対応するオプションはありません

-ipo-fsource-asm

アセンブリー・リストに高水準言語のソースコードを追加します。

/qv

対応するオプションはありません

バージョン情報を表示します。

対応するオプションはありません

-ipo-fverbose-asm,
-ipo-fnoverbose-asm

バージョンとアセンブリー・リストで使用されるオプションを含むコメントの挿入を有効または無効にします。

インテル・リンカーの呼び出しが IPO マルチオブジェクトのコンパイルを行う場合、(アプリケーションが大きい、または複数のオブジェクトを明示的に要求した場合)、最初の .s ファイル (Linux) または .asm ファイル (Windows) は、-qipo_fa オプション (Linux) または /qipo_fa オプション (Windows) からその名前を指定します。

それ以降の .s ファイル (Linux) または .asm ファイル (Windows) の名前には、取得したファイル名に番号が追加されます。例えば、/qipo_fafoo.asm の場合、foo.asm および foo1.asm のようになります。-qipo_fo オプション (Linux) または /qipo_fo オプション (Windows) の場合も同様です。