• 欢迎来到我的博客
  • [email protected]

编译流程中的【链接】到底是什么?

学习笔记 tianlan 12个月前 (05-16) 536次浏览 0个评论 扫描二维码
文章目录[隐藏]

百度百科:链接

静态链接

静态链接是由链接器在链接时将库的内容加入到可执行程序中的做法。链接器是一个独立程序,将一个或多个库或目标文件(先前由编译器或汇编器生成)链接到一块生成可执行程序。静态链接是指把要调用的函数或者过程链接到可执行文件中,成为可执行文件的一部分。

例如,在 windows 中,把链接的 dll 文件也打包到程序里面去,到时候就直接引用程序里面的 dll 就行。

动态链接

动态链接所调用的函数代码并没有被拷贝到应用程序的可执行文件中去,而是仅仅在其中加入了所调用函数的描述信息(往往是一些重定位信息)。仅当应用程序被装入内存开始运行时,在Windows的管理下,才在应用程序与相应的DLL之间建立链接关系。当要执行所调用DLL中的函数时,根据链接产生的重定位信息,Windows才转去执行DLL中相应的函数代码。

例如,在 windows 中,不会将 dll 打包到程序里,而是在运行时调用操作系统上的 dll。

dll、so

dll 和 so 都是二进制的函数库,分别对应 windows 和 linux


天蓝, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:编译流程中的【链接】到底是什么?
喜欢 (0)
[[email protected]]
分享 (0)

您必须 登录 才能发表评论!