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