このトピックでは、コマンドラインから IPO を使用する方法を説明します。
IPO を有効にするには、最初に各ソースファイルをコンパイルし、結果として得られたソースファイルをリンクします。
次のように、最初に [Q]ipo コンパイラー・オプションを使用してソースファイルをコンパイルします。
オペレーティング・システム |
コマンド例 |
---|---|
Linux* |
icpx -ipo -c a.cpp b.cpp c.cpp |
Windows* |
icx /Qipo /c a.cpp b.cpp c.cpp |
上記のコマンド例では、オペレーティング・システムによって出力が異なります。
Linux*: コマンドを実行すると、a.o、b.o および c.o オブジェクト・ファイルが作成されます。
Windows*: コマンドを実行すると、a.obj、b.obj、および c.obj オブジェクト・ファイルが作成されます。
c コンパイラー・オプションを使用して、.obj ファイルを作成した後でコンパイルを停止します。出力ファイルには、コンパイルされたソースファイルに対応するインテル® コンパイラーの中間表現 (IR) が含まれます。
次に、結果ファイルをリンクします。次のコマンド例では、app という名前の実行ファイルが生成されます。
オペレーティング・システム |
コマンド例 |
---|---|
Linux* |
icpx -o app a.o b.o c.o |
Windows* |
icx /Feapp a.obj b.obj c.obj |
このコマンドは、IR を含むオブジェクトに対してコンパイラーを実行して、リンクされるオブジェクトの新しい一覧を生成します。また、xilink (Windows*) ツールを適切なリンクオプションとともに使用できます。
上記の例で使用した複数のコマンドを組み合わせて、1 つのコマンドにすることができます。
オペレーティング・システム |
コマンド例 |
---|---|
Linux* |
icpx -ipo -o app a.cpp b.cpp c.cpp |
Windows* |
icx /Qipo /Feapp a.cpp b.cpp c.cpp |
上記の例のように、icx/icpx (C++) または dpcpp (DPC++) コマンドは、指定されたオブジェクト・ファイルにリンクする GCC ld (Linux*) または link.exe (Windows* のみ) を呼び出し、/Fe (Windows*) オプションで指定された実行ファイルを生成します。
Linux*: icpx (C++) または dpcpp (DPC++) を使用すると、コンパイラーは標準 C++ ライブラリーを自動で使用することができます。icx は標準 C++ ライブラリーを自動で使用しません。
インテルのリンクツールは、-O0 (Linux*) または /Od (Windows*) オプションでのコンパイル動作をエミュレートします。
一連のオブジェクト・ファイル (擬似オブジェクト・ファイルは含まない) に複数ファイル IPO を適用すると、複数ファイル IPO は実行されません。単にオブジェクト・ファイルがリンカーにリンクされるだけです。