コンパイラーによって作成されるオブジェクト・ファイル、アセンブラー・ファイル、または実行可能ファイルの出力位置を指定する。コンパイラー呼び出し中に -o オプションを使用するときには、filespec をファイルかディレクトリーのいずれかの名前にすることができます。リンケージ・エディターの直接呼び出し中に -o オプションを使用するときには、filespec はファイルの名前にしかすることができません。
-o をコンパイラー呼び出しの一部として指定するときには、filespec をディレクトリーまたはファイルの相対パス名か絶対パス名にすることができます。
オブジェクト・ファイル new.o が、test.o の代わりに作成されます。また、以下の場合は、xlc test.c -c -o new.o
new という名前のディレクトリーがなければ、オブジェクト・ファイル new が、a.out の代わりに作成されます。そうでない場合は、デフォルトのオブジェクト名 a.out が使用され、 new ディレクトリーに配置されます。xlc test.c -o 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 ディレクトリーに配置します。