繁体   English   中英

链接程序包括整个库到.exe文件还是仅包括该库中程序中使用的功能?

[英]does the linker includes whole library to .exe file or only the functions used in program from that library?

假设有一个名为player的库,它具有两个名为footballer()和cricketer()的函数,并且在程序中我们仅使用了footballer()。

链接器会将两个函数都链接到exe还是仅将使用的函数(例如football())链接起来。

通常未定义。 首先,假设我们谈论静态库。

诸如Linux,Mac OS X和Windows之类的主要平台上的几乎所有链接器都可以丢弃未使用的代码,但是对于几乎所有这些链接器来说,这都是一个选择。 因此可以打开或关闭此选项。

另外,现代编译器还具有链接时间优化通道,在此期间,将删除未使用的代码,以免产生直接影响。

这在很大程度上取决于实现和链接器选项。 一些链接器将仅链接所使用功能的代码,而另一些链接器将两者链接。

在某些实现中,库由许多目标文件组成,并且链接程序在目标文件而非功能上运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM