gcc 文件的编译过程_预处理

 

 gcc 文件的编译过程_汇编语言_02

 

 如果想把C语言变量的名称作为汇编语言语句中的注释,可以加上​​-fverbose-asm​​选项:

$ gcc -S -fverbose-asm circle.c

 

使用​​-C​​选项会很有帮助,这个选项可以阻止预处理器删除源文件和头文件中的注释:

$ gcc -E -C circle.c -o circle.c

 

 编译器支持许多和C语言程序相关的扩展名,对它们的说明如下:

 

扩展名(后缀)

说明

.c

C程序源代码,在编译之前要先进行预处理。

.i

C程序预处理输出,可以被编译。

.h

C程序头文件。(为了节省时间,许多源文件会包含相同的头文件,GCC 允许事先编译好头文件,称为“预编译头文件”,它合适情况下自动被用于编译。)

.s

​汇编语言​​。

.S

有C命令的汇编语言,在汇编之前必须先进行预处理。

 

对于include目录而言,通常的搜索顺序是:

  1. 包含指定源文件的目录(对于在 #include 命令中以引号包括的文件名)。
  2. 采用​​-iquote​​选项指定的目录,依照出现在命令行中的顺序进行搜索。只对 #include 命令中采用引号的头文件名进行搜索。
  3. 采用​​-I​​选型指定的目录,依照出现在命令行中的顺序进行搜索。
  4. 采用环境变量 CPATH 指定的目录。
  5. 采用​​-isystem​​选项指定的目录,依照出现在命令行中的顺序进行搜索。
  6. 采用环境变量 C_INCLUDE_PATH 指定的目录。
  7. 系统默认的 include 目录。