一般常说的“编译”包含预编译、编译,汇编,链接4个动作。使用gcc编译时,如果不带任何编译选项,gcc默认会执行4个动作最后生成a.out可执行模块。在某些情况下使用gcc的选项很有用。
一,查看详细的编译过程
-v 选项:有两个作用。除了查看gcc版本之外,在编译时带上该选项可以看到详细的编译过程。比如分别执行编译,汇编,链接等命令,并且查看到使用的标准启动文件crt1.o, crti.o等,标准库文件libc,libgcc等
gcc -v -o app hello.c
二,查看预处理的结果
-E 选项:仅预编译。该选项分析代码时很有用。如果宏定义很复杂,比如宏定义嵌套时,使用该选项可以看到宏展开后具体值。
gcc -E hello.i hello.c
另外在预处理结果文件中可以看到,其他头文件中数据类型和函数声明在结果文件中的声明。
三,将编译和链接分开
-c