我有一个动态库 A.dll 被 B.dll 使用。我在可执行文件 C.exe 中使用 B.dll。
level 0: A.dll
level 1: B.dll
level 2: C.exe
我在 Visual Studio 中收到链接器错误,提示链接器找不到导入库 A.lib,即使我的可执行文件没有直接使用 A.dll。为什么是这样?我假设A.lib中的信息会被编译成B.dll
最佳答案
如果没有代码,我怀疑 B 的公共(public) header 包含 A 的 header ,而 A 的 header 有一个#pragma comment(lib, "a.lib")。您描述的模式需要 B 仅在其私有(private)接口(interface)中依赖 A,而不是直接公开来自 A 的任何内容。
关于c++ - 为什么我需要我不是直接从我的可执行文件调用的 dll 的导入库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53048760/