关于编译的一些小知识

GNU编译器g++编译c++程序:

Windows,进入源代码所在的路径下,在命令行中输入:

 g++ -o test.exe test.cpp

test.cpp编译生成test.exe可执行文件,如果没有-o test.exe选项,默认生成a.exe

Linux,进入源代码所在的路径下,在命令行中输入:

g++ -o test test.cpp

test.cpp编译生成test可执行文件(Linux下文件没有后缀名,通过文件属性和执行权限识别),默认生成a.out,可能需要在命令尾部输入-std=c++0x来支持c++11标准

注意:可添加-Wall选项来开启所有警告,-w来忽略所有警告(严重不推荐)

 

微软visual studio编译器编译c++程序:

Windows,开始->所有程序->visual studio->visual studio tools->运行vs开发人员命令提示,在命令行中输入:

 cl  /EHsc test.cpp

生成test.exe文件(/EHsc参数来打开标准异常

Linuxvisual studio编译器

注意:可添加/W4来开启所有警告

 

分离编译器编译源文件的过程

Linuxgcc分步编译hello world为例

由上图可知,hello的c文件到可执行文件经历了预处理、编译、汇编、链接等几个过程,下面进行分步编译过程:

  .c文件经过预处理生成.i文件(将#include里面的内容添加到.c文件中形成.i文件) 

gcc -o hello.i -E hello.c 

  .i文件编译生成.s汇编文件

gcc -o hello.s -S hello.i

  .s汇编文件汇编生成.o目标文件(二进制文件)

gcc -o hello.o -c hello.s

  .o目标文件链接生成可执行文件(链接一些动态静态库)

gcc -o hello hello.o

至此生成hello的可执行文件

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值