实用的gcc选项

1.获取系统头文件搜索路径:

gcc -v 有效C源文件


2.产生映射文件:

除了实用nm工具外,可以在用gcc命令时,用-wl传递参数给连接器ld产生映射文件

gcc -wl,-Map=main.map   main.c  -o  main.exe


3.定义宏:

gcc -D'GREET=2'   main.c  -o main.exe

相当于#define    GREET       2


4.生成依赖关系:

gcc -M main.c    (一类来自系统头文件,一类来自自己的文件)(一部分直接包含,一部分是间接包含的)

gcc -MM main.c (由于系统头文件多数情况下是不会改变的,因此在构造make所需依赖关系时不必将它们纳入其中,通过-MM生成不半包含系统头文件的依赖关系)


5.指定链接库:

-L选项用于告诉gcc可以从哪个目录查找库文件,可以多次使用它以指定多个目录;

-l选项则用于告诉gcc在生成可执行程序时需要链接的库命,这一选项同样可以多次使用以指定多个库。使用时要注意,后面所跟的名字并不包括“lib”前缀和“.a”后缀。比如,-lfoo就是代表libfoo.a库参与链接。

(注意@:根据经验发现,使用gcc进行链接时依赖关系需要从左向右指定,比如说main.c文件中调用了foo.c文件中的函数foo(),而foo()函数调用了bar.c文件中的bar(),而foo.c和bar.c用于生成库文件libfoo.a和libbar.a,那么选项中必须采用“main.c -lfoo -bar”顺序,否则就会出现报告错误。

   gcc这种奇怪特性造成依赖关系比较复杂时需要对同一个库在不同的位置指定多次,否则就会出现无法成功链接的情形。)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值