実際のオブジェクト・ファイルを生成する
状況によっては、-ipo を使用して実際のオブジェクト・ファイルを生成する必要があります。IPOを行う場合、仮のオブジェクト・ファイルではなく実際のオブジェクト・ファイルを強制的に生成するのに、ipo_obj オプションと -ipo オプションを組み合わせて使用します。
次の場合は、-ipo_obj を使用する必要があります。
- -ipo を指定したコンパイル・フェーズで生成したオブジェクトを、xild ツールか xild -lib ツールでスタティック・ライブラリに格納する場合。スタティック・ライブラリについてはマルチファイル
IPO を利用できないため、スタティック・ライブラリはすべてリンカに渡されます。仮のオブジェクト・ファイルを含んでいるスタティック・ライブラリにリンクするとリンケージ・エラーが発生します。-ipo_obj を指定すると、スタティック・ライブラリの中で使用できるオブジェクト・ファイルが生成されます。
- 一方、xildかxild
-libを使って作成したスタティック・ライブラリは、普通のライブラリとして機能します。
- -ipoを指定したコンパイル・フェーズで生成したオブジェクトを、-ipo オプションと xild を使用しないでリンクする場合
- -ipoを指定してコンパイルを行っている最中に、-S を用いてソースファイルごとにアセンブリ・リストを生成したい場合。-ipo_objとではなく-Sと一緒に-ipoを使用すると、警告メッセージが出て、コンパイルしたソースファイルごとに空のアセンブリ・ファイルが生成されます。