gcc编译常用选项

  1. gcc/g++编译步骤

    • 预处理:生成.i的文件 g++ -E file.cpp > file.i
    • 转混编:将预处理的文件转成汇编文件g++ -S file.cpp => file.s
    • 目标文件:生成机器代码g++ -c file.cpp => file.o
    • 可执行文件:g++ -o file file.cpp
  2. 编译选项

    • x 设定文件所用的语言,如果没有这个选项则根据文件的后缀进行判定
      eg: gcc -x c file.c
    • -c 激活预处理,编译,和汇编生成.o的目标文件
      eg: gcc -c c file.c
    • -S 激活预处理和编译生成.s的混编代码
      eg: gcc -S file.c
    • -E 激活预处理
      eg: gcc -S file.c
    • -o制定目标名称,缺省的时候,gcc 编译出来的文件是a.out
      eg: gcc -o file file.cpp
    • -I指定#include “file”的文件查找目录
      eg: gcc -o file file.cpp -I/usr/local/include
    • -L指定编译的时候库的搜索路径
      eg: gcc -o file file.cpp -L/usr/local/lib
    • On 编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高

    • -g 在编译的时候产生调试信息

    • -shared 此选项将尽量使用动态库,所以生成文件比较小,不过需要系统由动态库

    • Wall 显示所有的警告信息

    • -fPic 使.so文件的代码段变为真正意义上的共享,如果不加-fPIC,则加载.so文件的代码段时,代码段引用的数据对象需要重定位, 重定位会修改代码段的内容,这就造成每个使用这个.so文件代码段的进程在内核里都会生成这个.so文件代码段的copy.每个copy都不一样,取决于 这个.so文件代码段和数据段内存映射的位置
    • -
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值