加入收藏 | 设为首页 | 会员中心 | 我要投稿 大连站长网 (https://www.0411zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

GCC自动鉴别的文件扩展名 一览表

发布时间:2022-07-12 11:54:00 所属栏目:语言 来源:互联网
导读:通过前面的学习我们知道,对于执行 C 或者 C++ 程序,需要借助 gcc(g++)指令来调用 GCC 编译器。并且对于以 .c 为扩展名的文件,GCC 会自动将其视为 C 源代码文件;而对于以 .cpp 为扩展名的文件,GCC 会自动将其视为 C++ 源代码文件。 除此之外,GCC 编
  通过前面的学习我们知道,对于执行 C 或者 C++ 程序,需要借助 gcc(g++)指令来调用 GCC 编译器。并且对于以 .c 为扩展名的文件,GCC 会自动将其视为 C 源代码文件;而对于以 .cpp 为扩展名的文件,GCC 会自动将其视为 C++ 源代码文件。
 
  除此之外,GCC 编译器还可以自动识别多种扩展名(如表 1 所示),即根据不同的扩展名确定该文件该怎样编译。
 
  表 1 GCC 自动识别的常用扩展名
  文件名称+扩展名 GCC 编译器识别的文件类型
  file.c 尚未经过预处理操作的 C 源程序文件。
  file.i 经过预处理操作、但尚未进行编译、汇编和连接的 C 源代码文件。
  file.cpp
  file.cp
  file.cc
  file.cxx
  file.CPP
  file.c++
  file.C 尚未经过预处理操作的 C++ 源代码文件。
  file.ii 已经预处理操作,但尚未进行编译、汇编和连接的 C++ 源代码文件。
  file.s 经过编译生成的汇编代码文件。
  file.h C、C++ 或者 Objective-C++ 语言头文件。
  file.hh
  file.H
  file.hp
  file.hxx
  file.hpp
  file.HPP
  file.h++
  file.tcc C++ 头文件。
  注意,表 1 仅罗列了 GCC 编译器可识别的与 C 和 C++ 语言相关的文件后缀名。除此之外,GCC 编译器还支持 Go、Objective-C,Objective-C ++,Fortran,Ada,D 和 BRIG(HSAIL)等编程语言的编译,关于这些编程语言可被识别的文件扩展名,感兴趣的读者可前往GCC官网查看。
 
  有读者可能会问,如果当前文件的扩展名和表 1 不符,还能使用 GCC 编译器吗?答案是肯定的。只需要借助 -x 选项(小写)指明当前文件的类型即可。
 
  举个例子,如下是一个 C 语言程序,存储在 demo 文件中:
  //存储在 demo 文件中
  #include <stdio.h>
  int main(){
     puts("GCC教程:http://c.biancheng.net/gcc/");
     return 0;
  }
  显然,这是一段完整的 C 语言程序,但由于其存储在无扩展名的 demo 文件中,如果直接使用 gcc 指令调用 GCC 编译器,则执行会报错:
  [root@bogon demo]# gcc demo
  demo: file not recognized: File format not recognized
  collect2: ld returned 1 exit status
 
  可以看到,GCC 编译器无法识别 demo 这个文件。这种情况下,就必须使用 -x 选项手动为其指定文件的类型,例如:
  [root@bogon demo]# gcc -xc demo
  [root@bogon demo]# ls
  a.out  demo
  [root@bogon demo]# ./a.out
  GCC教程:http://c.biancheng.net/gcc/
 
  可以看到,通过为 gcc 指令添加 -xc 选项,表明当前 demo 为 C 语言程序文件,由此 GCC 编译器即可成功将其编译为 a.out 可执行文件。
  除了用 c 表明 C 语言程序文件外,-x 指令还是后跟 c-header(C语言头文件)、c++(C++源文件)、c++-header(C++程序头文件)等选项,感兴趣的读者同样可直接前往 GCC 官网查看,这里不再做详细介绍。

(编辑:大连站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!