gcc 文件的编译过程
https://blog.csdn.net/czg13548930186/article/details/78331692
http://c.biancheng.net/gcc/
https://www.cnblogs.com/king-lps/p/7757919.html
如果想把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目录而言,通常的搜索顺序是:
- 包含指定源文件的目录(对于在 #include 命令中以引号包括的文件名)。
- 采用
-iquote
选项指定的目录,依照出现在命令行中的顺序进行搜索。只对 #include 命令中采用引号的头文件名进行搜索。 - 采用
-I
选型指定的目录,依照出现在命令行中的顺序进行搜索。 - 采用环境变量 CPATH 指定的目录。
- 采用
-isystem
选项指定的目录,依照出现在命令行中的顺序进行搜索。 - 采用环境变量 C_INCLUDE_PATH 指定的目录。
- 系统默认的 include 目录。