gccg++常用编译选项

gccg++常用编译选项,第1张

gcc/g++编译过程

1、预处理,生成.i .ii的文件[预处理器]
2、将预处理后的文件转换成汇编语言,生成文件.s[编译器]
3、由汇编变为目标代码(机器代码)生成.o的文件[汇编器as]
4、连接目标代码,生成可执行程序[链接器ld]

常用选项
-c只编译并生成目标文件
-DMACRO以字符串“1”定义MACRO宏,相当于#define macro
-DMACRO=DEFN以字符串“DEFN”定义MACRO宏,相当于#define macro=defn
-Umacro取消MACRO宏定义,相当于#undef macro
-C在预处理的时候, 不删除注释信息, 一般和-E使用, 有时候分析程序,用这个很方便
-E只激活预处理,可将预处理定向到标准输出,gcc -E hello.c
-S只激活预处理和编译,就是指把文件编译成为汇编代码,生成.s文件
-g生成调试信息
-pipe使用管道代替编译中临时文件
-L表示要连接的库所在的目录,g++ main.cpp -L/lib -lopencv
-llibrary指定编译的时候使用的库,gcc -lopencv main.c
-o FILE生成指定的输出文件,用在生成可执行文件时
-O0编译器没有优化
-O或-O1缺省值, 优化生成代码
-O2进一步优化
-O3优化级别最高,包括 inline 函数
-fPIC表示编译为位置独立的代码,用于编译共享库 gcc -fPIC -c test.c
-fPIE表示编译为位置独立的代码,用于编译可执行文件
-shared指定生成动态链接库 gcc -shared -o test.so test.o
-static指定生成静态链接库
-w关闭编译时的警告
-W类似-Wall,只显示编译器认为会出现错误的警告
-Wall生成所有警告信息
-ggdb此选项将尽可能的生成gdb 的可以使用的调试信息
-Wl,options把参数(options)传递给链接器ld,如果options 中间有逗号,就将options分成多个选项,然后传递给链接程序
-std=c,c++确定编译语言的标准

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/674042.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-19
下一篇 2022-04-19

发表评论

登录后才能评论

评论列表(0条)

保存