gcc 3.4以降では、何も指定しなければソースコードはUTF-8であるものとして扱われる。
UTF-8以外で書かれたソースコードの場合、例えばシフトJISの場合であれば、
というオプションを付ければ、コンパイル時にシフトJISからUTF-8に変換される。ただし、これだけでは実行コードもUTF-8になってしまいますので、実行コードをシフトJISにするには、
とする必要がある。
文字コードとして指定する名前は、iconvコマンドに対するものと同じ。ただし、シフトJISを扱う場合には、SHIFT_JISとすると正しく動作しないので、必ずcp932とする。
■-fmessage-length=n
このオプションは,表示されるエラーメッセージの長さをフォーマットするものです.デフォルトは72です.しかし,日本語の場合には意図したとおりにならないようです.次のようにずれます.
$ gcc -std=gnu9x test142.c -fmessage-length=20
test142.c:10: 警告: 戻り値の型をデフォルトの
`int' とします
$ gcc -std=gnu9x test142.c -fmessage-length=50
test142.c:10: 警告: 戻り値の型をデフォルトの
`int' とします
$ gcc -std=gnu9x test142.c -fmessage-length=60
test142.c:10: 警告: 戻り値の型をデフォルトの`int' とします
$ gcc -std=gnu9x test142.c -fmessage-length=55
test142.c:10: 警告: 戻り値の型をデフォルトの`int'
とします
$
■-x
オプションを指定することで入力の言語を明示的に指定することもできる。
■-x language
後続の入力ファイルの言語を、(ファイル名の接尾語によって決まるデフォルトの言語をコンパイラに選択させるのではなく) languageによって明示的に指定します。このオプションは、後続の入力ファイルのうち、次の`-x'オプションよりも前に指定されたものすべてに対して適用されます。 languageに指定することのできる値は以下のとおりです。
c objective-c c++
c-header cpp-output c++-cpp-output
assembler assembler-with-cpp
■-x none
言語の指定をすべて無効にします。これにより、後続のファイルは(`-x'オプションがまったく使われない場合のように)ファイル名の接尾語にしたがって処理されます。
(広義の)コンパイル処理の一部の段階だけを実行したい場合には、 `-x'オプション(もしくは、ファイル名の接尾語)を使って、どの段階から始めるかを、また、 `-c'、 `-S'、 `-E'のうち1つのオプションを使って、どの段階で停止すべきかをgccに対して指示することができます。組み合わせによっては(例えば、 `-x cpp-output -E') gccに対して何も実行しないよう指示したことになるということに注意してください。
最終更新:2009年01月05日 10:15