vs2010实现编译连接运行

来源:互联网 发布:电脑淘宝如何举报店铺 编辑:程序博客网 时间:2024/05/16 01:47

程序在运行之前要经过编译连接运行三个步骤,vs2010环境下当点击ctrl+F5时,此环境做了以下工作。

编译

  1. 预处理:vs将cpp文件中的注释忽略,将宏转化等,同时包含头文件等。在包含头文件时,vs根据路径寻找相关的头文件(<a.h>代表默认路径是vs下的include文件夹,"a.h"代表默认路径是此程序文件夹 ). 当头文件不在对应路径时,会出现找不到头文件的编译错误。
  2. 编译:将包含了头文件的被修改的源程序转化为汇编程序(还是文本文件)。
  3. 汇编:将汇编程序汇编为可重定向的二进制目标文件

链接

  1. 链接器将汇编后的可重定向的目标文件进行链接,生成可执行二进制文件。链接时有两种,一种是静态链接,此时vs启动链接器进行链接操作,如果链接时需要的库文件在链接配置中不存在时,会出现链接错误(每个vs项目都有属性,属性中有链接配置,其中包含了需要使用的库文件,链接器需要库文件时就在这里找)。另一种是动态链接,就是在运行时进行链接操作。
  2. 需要链接的原因是在编译阶段只是包含了头文件,系统中的库函数在头文件中可能只有申明,而没有定义,定义是存放在lib中的。只有链接过来后,此源程序才能完整,才可以运行。

运行

  1. 运行时用到动态链接库(.dll)时,系统会在系统文件夹下找相应的dll文件。这里和vs环境已经没有关系了。
原创粉丝点击