c++的编译过程

1.预处理,生成.i的文件[预处理器cpp]

  下面的命令将test.cpp预处理,并在标准输出中显示:

  g++ -E test.cpp

 后面加上 -o 选项表示将源代码预处理后输出在指定文件中,比如test.i:

   g++ -E test.cpp -o test.i

2.将预处理后的文件转换成汇编语言,生成文件.s[编译器egcs]

  g++ -S test.i -o xxx.s

3.有汇编变为目标代码(机器代码)生成.o的文件[汇编器as]

  g++ -c test.s -o xxx.o

4.连接目标代码,生成可执行程序[链接器ld]

  g++ test.o 自动生成一个名为a.out的可执行文件

  g++ test.cpp -o test.exe

  g++ test1.cpp test2.cpp -o test.exe

  使用C++11版本特性,则需要使用 -std=c++11 选项:

  g++ -std=c++11 test.cpp -o test.exe 

  g++ -o main main.cpp –lcurl

  g++ main.cpp -lcurl -I/usr/include/ -L/usr/lib/x86_64-linux-gnu  //完整的编译指令

  • -l<静态库> 是指明编译时引用哪个静态库;
  • -I<头文件路径> 是指明需要用到的头文件;
  • -L<库文件路径> 是为了指明静态库文件所在的目录

gcc与g++的区别:

1、对于.c后缀的文件,gcc把它当做是C程序;g++当做是C++程序;

2、对于.cpp后缀的文件,gcc和g++都会当做c++程序。

3、编译阶段,g++会调用gcc;

4、连接阶段,通常会用g++来完成,这是因为gcc命令不能自动和c++程序使用的库连接。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值