如何使用gcc进行多阶编译

关于gcc的编译选项,不要老自己调用g++,他不能连接c++目标文件,gcc不是指C编译器,而是Compiler Collection.他自己会调用需要的编译器/连接器,as,g77,g++,gcj,ld等...


gcc可以做多阶编译 uh! pretty cool :-)
怎么做呢... 

-x 选项指定gcc从哪个等级开始编译(参数是语言名称,参见man gcc),当然可以略,gcc自己根据扩展名会猜。
-c -E -S 指定编译停止于哪个等级。

   -c 停止在连接阶段,输出.o但不调用ld
   -S 停止在汇编阶段,输出.s(汇编语言源码)但不调用as
   -E 停止在预处理完成阶段(完成所有#define,#if,#include替换),输出到标准输出(除非你指定-o选项)gcc不做更多的处理了。

是不是很酷,不用担心不会写AT&T汇编了,写一段C代码,用-S选项为你变魔术吧。

需要注意的是-o选项不是为你产生可执行二进制代码的关键选项,它只是为gcc的输出给出一个文件名而已。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值