さらに、GCC コンパイラーは、さまざまな拡張子 (表 1 を参照) を自動的に認識することもできます。つまり、さまざまな拡張子に従ってファイルをコンパイルする方法を決定します。
ファイル名 + 拡張子 | GCC コンパイラによって認識されるファイルの種類 |
---|---|
file.c | 前処理されていない C ソース プログラム ファイル。 |
file.i | 前処理操作が行われたが、まだコンパイル、アセンブル、およびリンクされていない C ソース コード ファイル。 |
ファイル.cpp ファイル.cp file.cc ファイル.cxx ファイル.CPP ファイル.c++ file.C |
前処理されていない C++ ソース コード ファイル。 |
file.ii | 前処理されているが、まだコンパイル、アセンブル、およびリンクされていない C++ ソース コード ファイル。 |
file.s | コンパイルされたアセンブリ コード ファイル。 |
file.h | C、C++、または Objective-C++ 言語のヘッダー ファイル。 |
ファイル.hh file.H file.hp ファイル.hxx ファイル.hpp ファイル.HPP ファイル.h++ ファイル.tcc |
C++ ヘッダー ファイル。 |
表 1 には、GCC コンパイラによって認識される C および C++ 言語に関連するファイル拡張子のみがリストされていることに注意してください。また、GCC コンパイラは、Go、Objective-C、Objective-C++、Fortran、Ada、D、BRIG (HSAIL) などのプログラミング言語のコンパイルにも対応しています。これらのプログラミング言語に関心のある読者は、 GCC の公式 Web サイトにアクセスして表示できます。
一部の読者は、現在のファイルの拡張子が表 1 と一致しない場合、GCC コンパイラを引き続き使用できるかどうかを尋ねる場合があります。答えはイエスです。 -x オプション (小文字) を使用して、現在のファイルのタイプを示します。
たとえば、次はデモ ファイルに格納されている C 言語プログラムです。
//File demo
#include <stdio.h>
int main(){
puts("GCCチュートリアル:https://it-kiso.com/gcc/");
return 0;
}
明らかに、これは完全な C 言語プログラムですが、拡張子のないデモ ファイルに格納されているため、gcc コマンドを直接使用して GCC コンパイラを呼び出すと、実行時にエラーが報告されます。
[root@bogon デモ]# gcc デモ
デモ: ファイルが認識されない: ファイル形式が認識されない
collect2: ld が 1 つの終了ステータスを返しました
GCC コンパイラがデモ ファイルを認識できないことがわかります。この場合、-x オプションを使用して手動でファイル タイプを指定する必要があります。次に例を示します。
[root@bogon demo]# gcc -xc demo
[root@bogon demo]# ls
a.out demo
[root@bogon demo]# ./a.out
GCC Tutorial:http://it-kiso.com/
-xc オプションを gcc コマンドに追加すると、現在のデモが C 言語プログラム ファイルであることが示されるため、GCC コンパイラはそれを a.out 実行可能ファイルに正常にコンパイルできることがわかります。
c を使用して C 言語プログラム ファイルを示すことに加えて、-x コマンドの後には c-header (C 言語ヘッダー ファイル)、c++ (C++ ソース ファイル)、c++-header (C++ プログラム ヘッダー ファイル)、興味のある読者は、直接 GCC の公式 Web サイトにアクセスして表示することもできます。ここでは詳しく紹介しません。