Compile,Build/Link和Execute((编译、连接和运行))的联系与区别

转:http://www.dianzitx.com/mcu/clanguage/1883.html

一个C程序的生成要经历以下步骤:

1.编写文本代码,生成C或Cpp文件,这时候它还是文本的;

2.编译,就是Compile,由C编译程序对你写的代码进行词法和句法分析,发现并报告错误,有错时编译不能通过。如若无错,则生成中间代码,扩展名为Obj,此时它便是二进制的了;

3.连接,在汇编里称Link,在C里叫生成,即Build,它的作用是生成可执行的Exe文件。由于一个程序的源码可由多个文件组成。这些文件在第二步 中分别编译,生成各自的目标文件,这一步的作用便是将这些Obj文件,以及程序中需要的其它库文件(Dll除开),统一到一个文件中来,形成单个的Exe 文件。此Exe文件便可以在操作系统下直接运行了。

上述第二步做完中间代码生成的工作后还有个代码优化,这里就不详讲了。

Compile、Build分别对应编译和连接这两个过程。Execute的意思是执行,即生成了Exe文件后运行它。如果你的程序有修改,点这一项它会 弹出窗口问你是否重新编译和连接,也就是它可以自动把前面的工作都做了。也就是说,Vc菜单里的Execute功能如下:

1.程序有修改时,或者没有做前面的编译连接工作时

Execute=Compile+Build+执行;

2.程序编译连接好后

Execute仅仅是执行,不再做前面两项工作。

当程序有修改时,选择Execute只重编译和连接有改动的内容,但这样做有时候会出错,这时可选择Build菜单下的Rebuild All,重新编译、连接所有文件。

总之,C程序的生成可图示如下:

编写源代码->编译->连接,也叫生成->运行

对应的各个阶段处理的文件的扩展名为:

C或Cpp->Obj->Exe。

C程序是编译执行的,还有一种程序是解释执行的,如Java,它的源文件经过编译后形成扩展名为Class的中间代码,之后不做连接生成Exe文件,而是直接将这种.Class的中间代码拿到Java虚拟机平台上,由解释器解释执行。这种方式效率较低,但较灵活。


compile和build区别
compile只是将某个C或者CPP文件编译成obj文件,而build是将整个工程中的文件先Compile(编译),然后将编译生成的文件再Link(连接)成可执行文件


Build和Rebuild区别
Build只编译工程中上次修改过的文件,并链接程序生成可执行文件。如果以前没有作过编译,它会自动调用Rebuild操作,依次编译资源文件、源程序文件等;Rebuild不管文件是否作过修改,都会编译工程中的所有源文件。
Visual Studio的智能性还不够,它有时不能非常准确地判断出都有哪些文件需要重新编译。于是,当你Build时,它仅仅把它认为需要重新编译的重新编译一下,而有时候它的判断实际是不够的。但Rebuild就不同了,它把所有的东西都重新编译,不管改过的,没改过的;还是它认为有依赖的,没依赖的,统统重来。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值