0

比如说,一个名为 player 的库,有两个名为 footballer() 和 cricketer() 的函数,而在程序中我们只使用了 footballer()。

链接器会将这两个函数链接到 exe 还是仅链接使用的函数,即 football()...

4

2 回答 2

2

一般未定义。首先让我们假设我们谈论静态库。

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

另外,现代编译器具有链接时间优化通道,在此期间,未使用的代码将被删除,因为不是直接影响。

于 2013-07-14T23:27:13.593 回答
2

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

在一些实现中,库由许多目标文件组成,并且链接器在目标文件级别上操作,而不是在函数级别上操作。

于 2013-07-14T23:27:42.347 回答