如何使用gcc进行多阶编译
2006-09-05 13:31
375 查看
关于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的输出给出一个文件名而已。
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的输出给出一个文件名而已。
相关文章推荐
- Linux系统平台下关于GCC编译及使用的方法(-Werror,它要求GCC将所有的警告当成错误进行处理 )
- 如何在puppy linux 4.1上使用GCC编译---devx_410.sfs
- 关于如何在Android源码目录中建立自己的C工程,并用mm命令单独进行该C工程模块的编译,以及Android.mk的使用介绍(1)
- 详解如何使用babel进行es6文件的编译
- 如何在windows下使用masm和link对汇编文件进行编译
- 在windows环境下,使用Eclipse和gcc-Linaro工具链,对BeagleBone进行交叉编译和远程部署
- Linux下使用gcc进行静态编译和使用动态链接库编译
- 在Linux下如何使用GCC编译程序、简单生成 静态库及动态库。
- 在window平台下模拟Liunx使用GCC环境进行编译C的SO库。
- 在linux下如何使用Makefile对fortran程序进行编译
- 在Linux下如何使用GCC编译程序、简单生成 静态库及动态库
- 如何使用 gcc 编译程序
- 在Linux下如何使用GCC编译程序、简单生成静态库及动态库
- 在Linux下如何使用GCC编译程序、简单生成静态库及动态库
- 如何在XCode中使用gcc编译生成的.a库文件?
- Linux使用gcc进行编译
- 在windows环境下,使用Eclipse和gcc-Linaro工具链,对BeagleBone进行交叉编译和远程部署
- 在window平台下模拟Liunx使用GCC环境进行编译C的SO库。
- C#与.NET程序员面试宝典 2.2.2 面试题9:如何使用实时编译进行代码优化
- 如何在64位操作系统上使用masm进行编译链接和运行