如何使用gcc进行多阶编译

来源:互联网 发布:粒子滤波算法 编辑:程序博客网 时间:2024/05/12 11:59

关于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的输出给出一个文件名而已。 

原创粉丝点击