コンパイラーによって作成されるオブジェクト・ファイル、アセンブラー・ファイル、 または実行可能ファイルの出力位置を指定する。 コンパイラー呼び出し中に -o オプションを 使用するときには、filespec をファイルかディレクトリーの いずれかの名前にすることができます。 リンケージ・エディターの直接呼び出し中に -o オプションを 使用するときには、filespec はファイルの名前にしかすることができません。
>>- -o-- filespec----------------------------------------------><
-o をコンパイラー呼び出しの一部として 指定するときには、filespec を ディレクトリーまたはファイルの相対パス名か絶対パス名にすることができます。
xlc test.c -c -o new.otest.o の代わりにオブジェクト・ファイル new.o が作成されます。そして、以下のコンパイラー呼び出しでは、
xlc test.c -o newnew という同じ名前を持つディレクトリーが存在しなければ、a.out の代わりにオブジェクト・ファイル new が作成されます。存在する場合は、デフォルトのオブジェクト名 a.out が使用されて、new ディレクトリーに入れられます。
C または C++ のソース・ファイル・サフィックス (.C、.c、.cpp、または .i) を持つ filespec (myprog.c や myprog.i など) はエラーの結果となり、コンパイラーもリンケージ・エディターも呼び出されません。
-c と -o を一緒に使用して、 filespec がディレクトリーを指定していない場合は、 一度に 1 つのソース・ファイルしかコンパイルすることはできません。 この場合、 コンパイラー呼び出し時に複数のソース・ファイル名がリストされる場合、 コンパイラーは、警告メッセージを出して -o を無視します。
-E、-P、 および -qsyntaxonly オプションは、 -ofilename オプションをオーバーライドします。
myaccount という名前のディレクトリーが存在しないと想定して、myprogram.c をコンパイルした結果、myaccount という名前のファイルを作成するには、以下のように入力します。
xlc myprogram.c -o myaccount
ディレクトリー myaccount が存在する場合は、コンパイラーは実行可能ファイル a.out を作成して、それを myaccount ディレクトリーに入れます。
関連情報