gcc主要参数

编译过程

linux下常用gcc进行编译的,gcc编译分为4个流程:

  1. 预处理 Pre-Processing
  2. 编译 Compiling
  3. 汇编 Assembling
  4. 链接 Linking

预处理 Pre-Processing

命令:gcc -E main.c -o main.i

预处理命令是处理源文件中以#开头的语句。例如展开头文件,替换define常量等。

编译 Compiling

命令: gcc -S main.i -o main.s

编译阶段gcc对代码进行检查后转换成汇编代码。

汇编 Assembling

命令: gcc -c main.s -o main.o

将汇编代码转换成二进制文件

链接 Linking

命令: gcc main.o -o main

在代码中会用到各种库文件,这些库函数实现并不在当前生成的二进制文件中,因此需要链接到库文件才能正确运行。静态库在这一步直接添加到最终的执行文件中,动态库添加运行时的链接信息。

常用参数

查看gcc头文件搜索路径

使用-v参数查看编译过程时会显示头文件的查找路径

gcc -v -E -x c -: C语言头文件路径

gcc -v -E -x c++ -: C++头文件路径

或者针对源文件进行gcc -v -E main.c