Linux学习之gcc/g++选项

C/C++编译过程为:预处理,编译,汇编,链接

每个阶段都有对应的命令:

1) -E 仅对文件进行预处理

输入此命令后会将预处理结果显示在shell中,可将此命令与 > 命令结合,例如: g++ test.cpp -E > test.i,则将结果输入到test.i文件中.

2) -S 编译产生汇编文件后停止

该命令会生成.s后缀的汇编语言文件.

3) -c 汇编产生.o(obj)文件后停止

该命令会生成.o后缀的机器语言(二进制)文件.

4) 不加前面三个选项会默认将整个编译过程执行完,并生成可执行文件,名称默认为a.out.

其他重要命令:

1) -o 以后面所跟的字符串给生成的文件命名

例如:g++ test.cpp -o test.out,则将生成可执行文件test.out,后缀可以自己改.

2) -g 使生成的可执行文件可调试

使用gdb调试程序必须有此选项

3) -O[n] 对代码进行O[n]优化

-O2 即进行O2优化

4) -std=c++xx 使用c++xx标准

5) -L 指定库文件路径

6) -l(小写的L) 指定库文件

该命令会自动为其指定的名称加上lib的前缀和.a或.so的后缀,

例如:g++ test.cpp -lmylib

等价于 g++ test.cpp libmylib.a(so)

当静态库和动态库同时存在时优先使用动态库.

7) -I(大写的i) 指定头文件路径

8) -fPIC 生成位置无关的代码

会将代码中的相对位置变为绝对位置,用于创建动态库前的编译.

9) -shared 创建动态库

可与 -fPIC 一起使用,

例如:g++ sort1.cpp sort2.cpp -fPIC -shared -o libsort.so

等价于 g++ sort1.cpp sort2.cpp -fPIC -c

            g++ sort1.o sort2.o -shared -o libsort.so

10) -Wall 打印警告信息

11) -w 关闭警告

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值