gcc编译器

gcc/g++在执行编译的时候,只要分四个阶段 :
1、预处理阶段,完成宏定义和include文件展开等工作;                                 [预处理器cpp]
2、根据编译参数进行不同程度的优化,编译成汇编代码,生成.s的文件 ;             [编译器egcs]
3、用汇编器把汇编代码进一步生成目标代码,生成.o的文件;                          [汇编器as]
4、用连接器把生成的目标代码和系统或用户提供的库连接起来,生成可执行文件; [链接器ld] 

gcc常用编译选项:
-E               只运行C预编译器cpp,不生成文件
-S               只把文件编译成为汇编代码
-c                只生成object文件,不链接
-o                生成指定的输出文件
-g                生成可被gdb使用的标准调试信息
-IDIR           指定额外的头文件搜索路径DIR
-LDIR           指定额外的库函数搜索路径DIR
-lLIBRARY    指定链接时需要的其它函数库“ LIBRARY”
-w               不生成任何警告信息
-Wall           生成所有级别的警告信息
-shared       生成支持动态共享库的执行文件
-static         不支持动态共享库,把函数库内容静态链接到可执行程序中
-O0             不进行代码优化处理
-O,O1         进行一般优化,减少大小和时间
-O2              进一步优化,一般在内核编译时使用
-O3              较-O2进一步优化 

原文地址:https://www.cnblogs.com/amanlikethis/p/3344667.html