gcc工作的流程
注意:前三步-E、-S、-c未用-o指定生成得文件名时,会自动根据源文件名匹配
一步完成,直接将源文件生成一个可以执行文件,如果不指定输出文件名字, gcc编译器会生成一个默认的可以执行a.out
GG常用选项
选项 | 作用 |
---|---|
-E | 只进行预处理 |
-S(大写) | 只进行预处理和编译 |
-c(小写) | 只进行预处理、编译和汇编 |
gcc(不加选项,默认) | 进行预处理、编译、汇编、链接器,默认输出可执行文件a.out |
-o file | 指定生成的输出文件名为file |
-v / --version | 查看gcc版本号 |
-g | 生成可执行文件,进行了预处理、编译、汇编、链接器并包含调试信息 |
-On n=0~3 | 编译优化,n越大优化得越多 |
-Wall | 提示更多警告信息 |
-D | 编译时定义宏 |
在gcc编译时,有警告信息,默认编译器可通过且不显示警告信息
编译时显示所有的警告信息
编译时将警告信息当做错误处理,有警告信息编译不通过
测试程序(-D选项):
#include <stdio.h>
int main(void){
#ifdef DEBUG//如果定义了宏DEBUG,就执行下面的代码,没定义就不执行
printf("debug\n");
#endif
printf("hello word!\n", );
return 0;
}
(-D选项) 可用于调试,调试的时候就定义DEBUG,让调试信息输出,不调试时,不定义就不会输出
g++与gcc用法相同