zoukankan      html  css  js  c++  java
  • 编译和链接的区别联系

    1.compile和link是大多数语言从原代码生成可执行程序的两个步骤。

    2、compile是先针对单独原文件进行处理。link是把compile处理的结果组合成一个完整的可执行文件。

    编译:编译器对源代码进行编译,是将以文本形式存在的源代码翻译为机器语言形式的目标文件的过程。

    编译单元:对于C++来说,每一个cpp文件就是一个编译单元。

    目标文件:由编译所生成的文件,以机器码的形式包含了编译单元里所有的代码和数据,以及一些其他的信息。

    3、头文件不属于compile和link过程,头文件是预编译过程的文件。

    C/C++语言的完整编译过程是

    一、预编译

    处理#define #if #include这类#开头的语句,这些称为预编译指令。这个过程中会把.h文件和.c/.cpp文件组合成最终交给compile过程的原文件。这个原文件是不包含任何#开头的语句的。所有#define定义的宏也会被替换。

    二、编译
    把上面那个原文件编译成.o或者VC里是.obj文件。这个文件保存了机器码化的函数、函数的描述、全局变量的描述、乃至段的描述等等。

    三、连接
    把可执行程序需要的所有的编译过程产生的.o或者.obj文件组合到一起。(这里也包括.lib文件,.lib文件件本质上就是打包的.obj文件集合)。另外连接过程还会组合一些其他数据,比如资源、可执行文件头等等。

  • 相关阅读:
    一些浏览器的兼容和雪碧图的使用
    常用的一些样式
    Open.auth 开源项目学习(一)SSO单点登录
    一个开发人员对于职业生涯规划的感想
    从今天开始分享自己的学习经历
    mysql在海量数据时的处理方案
    Mysql分区
    su和sudo的区别
    su:authentication failure问题
    大数据处理思路
  • 原文地址:https://www.cnblogs.com/xiaobailongvictory/p/4648473.html
Copyright © 2011-2022 走看看