-verbose オプションを使用すると、呼び出される名前やバージョン番号および各コンパイル段階のコマンド行など、プログラムのコンパイル中に役立つ情報を表示できます。
コマンド行に指定された引数をコンパイラが認識できない場合には、それらはリンカーオプション、オブジェクトプログラムファイル名、ライブラリ名のいずれかとみなされます。
基本的には次のように区別されます。
認識できない非オプション (先頭にダッシュかプラス符号 (+) が付いていないもの)には、警告が生成されません。ただし、リンカーへの引き渡しは行われます。リンカーも認識できないと、リンカーからエラーメッセージが生成されます。
次の例で、 -bit は CC によって認識されないため、リンカー (ld) に渡されます。リンカーはこれを解釈しようとします。単一文字の ld オプションは連続して指定できるので、リンカーは -bit を -b、-i、-t とみなします。これらはすべて有効な ld オプションです。しかし、これは本来の意図とは異なります。
example% CC -bit move.cc <- -bit は CC オプションとして認識されない CC: 警告: ld が起動される場合は、オプション -bit は ld に渡されます。 それ以外は無視されます。 |
次の例では、CC オプション -fast を指定しようとしましたが、先頭のダッシュ (-) を入力しませんでした。コンパイラはこの引数もリンカーに渡します。リンカーはこれをファイル名とみなします。
example% CC fast move.cc <- ユーザーは -fast と入力したつもりだった move.CC: ld: 重大なエラー: ファイル fast: ファイルをオープンできません: ファイルも ディレクトリもありません。 ld: 重大なエラー: ファイル処理エラー。a.out に書き込まれる出力はありません。 |