o

C に適用 C++ に適用

目的

コンパイラーによって作成されるオブジェクト・ファイル、アセンブラー・ファイル、または実行可能ファイルの出力位置を指定する。コンパイラー呼び出し中に -o オプションを使用するときには、filespec をファイルかディレクトリーのいずれかの名前にすることができます。リンケージ・エディターの直接呼び出し中に -o オプションを使用するときには、filespec はファイルの名前にしかすることができません。

構文


構文図

-o をコンパイラー呼び出しの一部として指定するときには、filespec をディレクトリーまたはファイルの相対パス名か絶対パス名にすることができます。

  1. filespec がディレクトリーの名前である場合、コンパイラーによって作成されるファイルはそのディレクトリーに置かれます。
  2. filespec という名前のディレクトリーが存在しない場合は、-o オプションは、コンパイラーによって作成されるファイルの名前を filespec と指定します。例えば、以下のコンパイラー呼び出しでは、
    xlc test.c -c -o new.o
    
    オブジェクト・ファイル new.o が、test.o の代わりに作成されます。また、以下の場合は、
    xlc test.c -o new
    
    new という名前のディレクトリーがなければ、オブジェクト・ファイル new が、a.out の代わりに作成されます。そうでない場合は、デフォルトのオブジェクト名 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 ディレクトリーに配置します。

関連参照

コンパイラーのコマンド行オプション
c
E
P
syntaxonly IBM Copyright 2003