gpt4 book ai didi

c++ - 解析引用 | Exe/Dll 与 Lib

转载 作者:行者123 更新时间:2023-11-28 04:31:38 25 4
gpt4 key购买 nike

所有这些都是在 msbuild 的上下文中,但我确信无论构建系统如何,一般原则都适用。我在更新一些 vcxproj 文件以构建一些单元测试(一个 DLL)时遇到了一个 LNK2001 错误,指出没有引用 dbghelp.lib(Windows SDK)中的某些函数。

将我的单元测试 vcxproj 文件与与我的测试内容(一个库)关联的 vcxproj 进行比较时,我没有看到任何指向 dbghelp.lib 的链接。我的同事告诉我,在一个库中,你只需要解析你在库中使用的引用,但对于 Exe/Dll,你需要解析所有引用。

我的猜测是,在库中,使用哪些引用由库的作者控制,因此只需要解析使用的引用。对于 Exe/Dll,没有这样的保证,因此需要解析所有引用。这听起来对吗?还有更多的意义吗?

相关,如果我想了解更多,有什么好的书推荐涵盖这个主题吗?

最佳答案

您的主要问题的答案是肯定的,仅此而已。您可以通过使用动态解析 (LoadLibrary/GetProcAddress) 来解决对静态符号解析的需求。

您询问的主题是构建中如此简单且不可或缺的一部分,以至于我不知道有什么将其作为主要主题,也没有任何内容详细处理 Windows 主义。 John R. Levine 的书“Linkers and Loaders”提供了对该主题的更类似 unix 的处理。还有特定于工具的文档集。

对于 Microsoft 工具,我强烈建议您查看 https://learn.microsoft.com/en-us/visualstudio/?view=vs-2017#pivot=get-started&panel=get-started1 上的 Visual Studio 资料(我更喜欢较旧的 MSDN,但看到 Material 从那里消失了,我使用较旧的 MSDN 文档集的本地拷贝,因此无法详细告诉您在 learn.microsoft.com 上在哪里可以找到有关链接器选项的 Material )。

关于c++ - 解析引用 | Exe/Dll 与 Lib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52752383/

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