当前位置: 移动技术网 > IT编程>开发语言>C/C++ > c++中的编译链接介绍

c++中的编译链接介绍

2018年03月03日  | 移动技术网IT编程  | 我要评论

南非人为治病 他们竟和鳄鱼做这事!,感动生命迅雷下载,赛尔号精灵学院在哪

1、编译:cpp--->obj

把源文件中的文本形式存在的源代码翻译成机器语言形式的目标文件的过程,在这个过程中,编译器会进行一系列语法检查。

(1)编译单元:每一个CPP文件就是一个编译单元。且每个单元之间是相互独立并且互相不可知。

(2)目标文件:由编译所生成的文件,以机器码的形式包含了编译单元里所有的代码和数据,还有一些其他信息,如未解决符号表、导出符号表和地址重定向表等。

(3)存在形式:二进制

在预编译时,.h头文件会被复制、扩展到包含它的.cpp文件里,然后编译器编译该cpp文件作为一个obj文件,该cpp文件作为一个编译单元独立编译。当编译器将一个工程里所有的cpp文件以分离的方式编译完毕后,再由链接器进行链接成为一个可执行文件。

2、链接

在链接器进行链接的时候,

(1)首先决定各个目标文件在最终可执行文件里的位置。

(2)然后访问所有目标文件的地址重定义表,对记录中的地址进行重定位。

(3)遍历所有目标文件的未解决符号表,并且在导出符号表里查找匹配的 符号,并在未解决符号表中所记录的位置上填写实现地址。

(4)最后把所有的目标文件的内容写在各自的位置上。

(5)作一些其他工作,生成可执行文件。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网