gpt4 book ai didi

c++ - 链接器是否防止重复链接?

转载 作者:行者123 更新时间:2023-11-28 08:08:59 24 4
gpt4 key购买 nike

经过一些研究和测试,我发现,当链接到一个库时,我的项目需要具有与我要链接到的库相同的运行时库(MT、MD 等)链接选项。

我想知道的是,如果我使用静态库(通常静态链接到运行时库),我是否没有与运行时库链接两次,因为它在我的库和我的应用程序中静态链接?或者链接器阻止了这个?

最佳答案

通常静态库不会链接到运行时库。相反,所有对运行时的引用都将保持未解析状态,即您的静态库文件将只包含代码的目标文件,而不是运行时库的目标文件。

只有当您使用该库构建实际的可执行文件时,您才会链接到运行时库,这将解析来自静态库的开放引用。这通常是编译静态链接库时的默认行为。

也就是说,对于大多数编译器,您可以强制链接器解析静态库的外部引用。如果您的库具有您不想传递给最终可执行文件的编译的依赖项,这可能是有益的。

但是,如果这会导致重复符号(在强制提前链接到运行时时很可能出现这种情况),则可能会破坏链接器。如果幸运的话,您只会收到有关重复符号的警告,但它也可能根本不链接,具体取决于您的链接器的实现。

关于c++ - 链接器是否防止重复链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9554229/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com