使用gcc/g++学习编译流程

我们知道编译的整个流程是:

  预处理 --> 编译 --> 汇编 --> 链接

g++或gcc提供了单独进行上述子过程的途径。

gcc是C编译器;g++是C++编译器;linux下cc一般是一个符号连接,指向gcc;gcc和g++都是GUN(组织)的编译器。而CC则一般是makefile里面的一个名字,即宏定义,嘿,因为Linux/Unix都是大小写敏感的系统,这点一定要注意。

(本文主要以编译C++程序的g++为演示,如果是C程序直接将给 g++改为gcc即可)


1. 预处理:生成.i的预处理文件。

 只激活预处理,这个不生成文件,需要把它重定向一个输出文件。
g++ -E HelloWorld.cpp -oHelloWorld.i

2. 编译:生成.s的编译文件。
g++ -S HelloWorld.i -o HelloWorld.s

3. 汇编:生成.o的汇编文件。

g++ -c HelloWorld.s -o HelloWorld.o

4. 链接:生成链接文件。

这是最后一步,执行完后即可生成可执行文件。

g++ HelloWorld.o -o HelloWorld


习惯使用的,一步直接编译成可执行文件:

g++ HelloWorld.cpp -o HelloWorld


更多请参考:http://huobumingbai.blog.51cto.com/1196746/308526

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值