我有一个动态库 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
答案 0 :(得分:1)
如果没有代码,我会怀疑B的公共头包含A的头,而A的头具有#pragma注释(lib,“ a.lib”)。您描述的模式将需要B仅在其私有接口中依赖A,而不是直接向A公开任何内容。