linux g++使用一

gcc and g++分别是GNU的c & c++编译器。很多的人都以为gcc只能编译.c后缀的文件,gcc把它当成c程序, 而对与.cpp文件,g++会把它当作c++程序。

在编译阶段,g++会调用gcc,对与c++代码,二者是一样的。因为 gcc命令不会自动和c++程序使用的库连接。所以通常就用g++来完成。

gcc和g++的编译过程分为四步:


现在简单的介绍下g++编译main.cpp为例:

预处理:g++ -E main.cpp -o main.i          使用-E选项来生成.i目标。(主要是做头文件的展开和宏定义的展开)

编译:       g++ -S main.i -o main.s使用-S选择来生成.s目标文件.(主要是将.i文件编译成汇编文件)

汇编:  g++ -c main.s -o main.o 使用-c选择来生成.o目标文件.(主要是将.s文件汇编成一个二进制文件)

链接:       g++ main.o -o main主要是将.o文件链接成可执行文件.

我们也可以一条命令就可以完成:

g++ main.cpp  -o main

以上就是简单的叙述了g++在编译。cpp文件的简单过程。

当然g++的功能远不只这样,大家可以看看g++的选项。

下面来说一个用的比较多的选项-Wall.

-Wall 编译会输出一些警告和错误信息。对于初学者还是很有必要的。


当然在实际的项目中不可能就只有一个.cpp就能完成整个项目的开发。

如果项目中有多个cpp,  fun.cpp, main.cpp。

下面用一条语句也可以完成:g++ fun.cpp main.cpp -o main

当然我们也可以分开来执行:

g++ -Wall -c fun.cpp -o fun.o

g++ -Wall -c main.cpp -o main.o

g++ -Wall  fun.o main.o -o main

分开编译的好处就在于 如果你只修改了fun.cpp,那么只需要重新编译fun.cpp既可,在大的项目里面,就可以节约很多的编译时间.

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值