ホーム プログラミング言語 gcc GCC によって自動的に認識されるファイル拡張子 (リスト)

GCC によって自動的に認識されるファイル拡張子 (リスト)

GCC によって自動的に認識されるファイル拡張子 (リスト)

以前の研究から、C または C++ プログラムを実行するには、gcc (g++) 命令を使用して GCC コンパイラを呼び出す必要があることがわかっています。また、拡張子が .c のファイルの場合、GCC は自動的に C ソース コード ファイルとして扱い、拡張子が .cpp のファイルの場合、GCC は自動的に C++ ソース コード ファイルとして扱います。

さらに、GCC コンパイラーは、さまざまな拡張子 (表 1 を参照) を自動的に認識することもできます。つまり、さまざまな拡張子に従ってファイルをコンパイルする方法を決定します。

表 1 GCC によって自動的に認識される一般的に使用される拡張機能
ファイル名 + 拡張子 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 サイトにアクセスして表示することもできます。ここでは詳しく紹介しません。

Share via
Copy link