gcc/g++常用编译选项

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++确定编译语言的标准
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_43285563

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值