g++的使用

g++ 

 

一般分为这几步:

1. 预处理,生成.i文件

2. 编译,生成.s文件(汇编文件)

3. 汇编,将汇编文件转化成.o文件(目标文件)

4. 连接目标代码,生成可执行文件

 

-c  激活预处理,编译,汇编,最后生成obj文件

-S 激活预处理,编译,最后生成.s汇编文件

-E 激活预处理,不生成文件,需要定位到一个输出文件里

 

-o 为结果文件命名

 

-O0

-O1

-O2

-O4

编译器的四个优化级别,-O0为没有优化,-O1为默认值,-O3为优化最高级别。

对于valgrind来说,-O0是最喜欢的,只是速度较慢。-O1相对-O0来说错误信息可能不够完整,但一般来说表现良好。-O2就不推荐了。

 

-Wall 使g++能够产生尽可能过的警告消息

 

对于多个文件:

g++ foo1.cc foo2.cc -o foo

相当于:

g++ foo1.cc -o foo1.o

g++ foo2.cc -o foo2.o

g++ foo1.o foo2.o -o foo

 

 

调用函数库:函数库是一些头文件(.h文件)和库文件(.a和.so文件)的集合

-I 向g++头文件搜索路径中添加新的路径

-L 向g++库文件搜索路径中添加新的路径

-l 指示g++链接的函数库,库文件命名以lib开头,故这里可以省略lib

 

库文件分为:静态链接库(.a结尾),动态链接库(.so结尾)

g++优先使用动态链接库,在动态链接库不存在的情况下使用静态链接库

可以在编译时增加-static强制使用静态链接库

 

-Dmacro 相当于C语言中的#define macro

-Dmacro=defn 相当于C语言中的#define macro=defn

-Umacro 相当于C语言中的#undef macro

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值