构建过程中的阶段是什么

时间:2009-06-04 02:59:49

标签: c++

构建可执行文件(编译,链接......)涉及哪些不同的阶段或阶段?是不同的.Net应用程序和Windows应用程序

3 个答案:

答案 0 :(得分:1)

这是整个事情,直到正在运行的应用程序,只考虑编译器的东西。

  • 代码程序
  • 将单个文件编译为对象(.o或.obj)文件
  • 将文件链接到可执行文件(a.out文件或.exe)

运行可执行文件,然后

  • 将图像重新定位并加载到地址空间
  • 解析动态链接库(DLL或.so)的链接
  • 将程序计数器设置为设置代码中的入口点,进行一些初始化,然后
  • 调用main()例程。

Windows资源文件实际上只是编译成二进制形式,因此它们可以作为数据包含在可执行文件中。在Windows 3.0的时代有这样的原因,但我认为现在只是一个历史性的延续。

答案 1 :(得分:1)

Dotnet代码被编译为IL(中间语言)。但与其他语言不同,此中间代码不会被解释,而是再次编译以获取本机代码。这个额外的层是提供代码可移植性所必需的。此过程仅执行一次,并且仅在需要时编译所需的代码块。因此,第一次运行总是较慢,因为代码也被转换为本机代码。

答案 2 :(得分:0)

对于C ++,预处理器执行pass,然后编译器,然后构建资源(如果是windows应用程序),然后链接。