実際のソースのファイル名サフィックスに関係なく、すべての認識されるソース・ファイルをこのオプションによって指定されたソース・タイプとして扱うようコンパイラーに命令します。
.-default------------. >>- -q--sourcetype--=--+-c------------------+------------------>< +-c++----------------+ +-assembler----------+ '-assembler-with-cpp-'
ここで、
ソース・タイプ | サフィックス | 振る舞い |
---|---|---|
デフォルト | - | コンパイラーはソース・ファイルのプログラム言語がそのファイル名のサフィックスによって暗黙指定されることを想定します。 |
c |
|
コンパイラーはこのオプションの後のすべてのソース・ファイルを C 言語のソース・ファイルであるかのようにコンパイルします。 |
c++ |
|
コンパイラーはこのオプションの後のすべてのソース・ファイルを C++ 言語のソース・ファイルであるかのようにコンパイルします。 |
assembler |
|
コンパイラーはこのオプションの後のすべてのソース・ファイルをアセンブラー言語のソース・ファイルであるかのようにコンパイルします。 |
assembler-with-cpp |
|
コンパイラーはこのオプションの後のすべてのソース・ファイルを、プリプロセッシングを必要とするアセンブラー言語のソース・ファイルであるかのようにコンパイルします。 |
通常、コンパイラーはコマンド行に指定されたソース・ファイルのファイル名サフィックスを使用してソース・ファイルのタイプを判別します。例えば、.c のサフィックスは通常、 C ソース・コードを暗黙指定し、.C のサフィックスは通常 C++ ソース・コードを暗黙指定し、コンパイラーはこれらのファイルを以下のように扱います。
-qsourcetype オプションは、ファイル名サフィックスに依存せずに、オプションによって指定されたソース・タイプを想定するようコンパイラーに命令します。 これはファイル・システムで大/小文字の区別があるかどうかに関係なく適用されます。しかし、大/小文字を区別しないファイル・システムでは、前述の 2 つのコンパイルは同じ物理ファイルを参照します。つまり、コンパイラーはなおコマンド行のファイル名引数の大/小文字の違いを認識して、それに応じてソース・タイプを判別しますが、ファイル・システムからファイルを検索するときには大/小文字の違いを無視します。
このオプションはコマンド行でこのオプションより後に 指定されたファイルだけに影響し、このオプションよりも前のファイルには影響しない点に注意してください。したがって、以下の例では、
xlc goodbye.C -qsourcetype=c hello.C
hello.C は C ソース・ファイルとしてコンパイルされますが、goodbye.C は C++ ファイルとしてコンパイルされます。
-qsourcetype オプションは、-+ オプションと一緒に使用しないでください。
ソース・ファイル hello.C を C 言語のソース・コードとして扱うには、以下のように入力します。
xlc -qsourcetype=c hello.C
関連情報