我有 C++ 项目的遗留 MSVS 解决方案。当我从版本控制系统中获取它并第一次尝试构建它时(当它干净时)- 我收到错误:找不到 LNK 1104 库。
当我第二次尝试构建它时 - 一切都构建正常。
项目“A”(C++) 依赖于项目“B”(也是 C++)的库(lib 文件)。
“A”在它的一个 cpp 文件中有这样的代码(可能 stdafx.h 是 #pragma 注释的更好位置?):
#pragma comment(lib, "B.lib")
这会导致第一个构建的链接器错误
我调查了第一个构建结果:“B”项目成功编译,生成“lib”文件,“A”项目(依赖于“B”)是解决方案项目构建顺序中的最后一个项目。
我想知道为什么“A”第一次没有看到“B”库,因为“B”应该早于“A”构建。当我第二次构建相同的解决方案时 - 没有链接器错误。
最佳答案
这与构建顺序有关。如果先构建项目 A,则 B.lib
尚不存在。所以你得到了错误。然后构建项目 B,并生成 B.lib
。当您再次构建时,由于库存在,错误消失了。
要解决这个问题,你需要告诉解决方案A依赖于B。右键单击解决方案,转到项目依赖项,在“项目”中选择A
并勾选B
在“取决于”中。像这样的东西:
关于C++。错误 LNK1104。第一次打不开库文件 解决办法建了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10776290/