C99(1)

名称
c99 - 標準 C 言語コンパイラ

書式
c99 [-cEgs] [-D name[=value]] ... [-I directory ...] [-L directory ...] [-o outfile] [-O optlevel] [-U name ...] operand ...

解説
これは p1003.1-2001 標準にて要求されている、C 言語コンパイラの名称です。

c99 コンパイラは以下のオプションを受け付けます:

-c  コンパイル時にリンクエディットフェーズを実行しません。 生成されたオブジェクトファイルを一切削除しません。

-D name[=value]
    C 言語の #define ディレクティブ(前処理指令)で指定したかのように名前を定義します。 “=value” が与えられない場合、値 1 が使用されます。 p1003.1-2001 に指定されているように変換するためには、ソース中または本オプションを使用して _POSIX_C_SOURCE=200112L を定義する必要があります。 -D オプションは -U オプションより低い優先度を持ちます。 すなわち name が -U と -D の両方で使用された場合、オプションの順序によらず、 name は未定義になります。 -D オプションは複数回指定可能です。

-E  全プリプロセッサディレクティブを展開し、 C 言語ソースファイルを標準出力へコピーします。 コンパイルは行いません。

-g  オブジェクトや実行ファイル中にシンボル情報を生成します。

-I directory
    絶対パス名ではないヘッダを検索するアルゴリズムを、 通常の場所を検索する前に directory で指定されるディレクトリを探すという方法に変更します。 ダブルクォート ("") で括られた名前のヘッダは、 #include 行を指定したファイルのディレクトリ、 次に -I オプションで指定したディレクトリ、 最後に通常の場所で探します。 アングルブラケット (<>) で括られた名前のヘッダは、 -I オプションで指定したディレクトリと 通常の場所のみで探します。 -I オプションで指定したディレクトリは指定した順番で探します。 -I オプションは複数回指定可能です。

-L directory
    -l で指定されるライブラリを検索するアルゴリズムを、 通常の場所を検索する前に directory で指定されるディレクトリを探すという方法に変更します。 -L オプションで指定したディレクトリは指定した順番で探します。 -L は複数回指定可能です。

-o outfile
    パス名 outfile をデフォルトの a.out の代りに使用し、実行可能ファイルを生成します。

-O optlevel
    optlevel が 0 の場合、最適化を抑制します。 そうでない場合、指定したレベルの最適化を有効化します。

-s  オブジェクトや実行ファイルを生成する時、 実行に不要な、シンボルおよびその他の情報を取り除きます (ストリップします)。

-U name
    name の初期定義を取り除きます。 -U オプションは複数回指定可能です。

オペランドは、パス名、もしくは -l ライブラリの形式です。 パス名オペランドが少なくとも一つは指定されなければなりません。 サポートされているオペランドの形式を以下に示します:

file.c
    C 言語ソースファイルであり、コンパイルされます。 場合によってはリンクされます。 -c オプション使用時には、オペランドはこの形式でなければなりません。

file.a
    オブジェクトファイルのライブラリであり、 ar(1) によって生成され、直接リンクエディタに渡されます。

file.o
    オブジェクトファイルであり、 c99 -c によって生成され、直接リンクエディタに渡されます。

-l library
    liblibrary.a という名前のライブラリを探します。 ライブラリの名前が出てきた時点でそのライブラリ内部が検索されるので、 -l オペランドの位置は重要です。

関連項目
ar(1), c89(1), cc(1)

規格
c99 ユーティリティインタフェースは p1003.1-2001 に適合しています。 これは GCC を包むものですので、 GCC が実際に実装している C99 機能に限定されています。 http://gcc.gnu.org/gcc-3.3/c99status.html を参照してください。