C ++。错误LNK1104。第一次构建解决方案时无法打开库文件

时间:2012-05-27 18:31:55

标签: c++ visual-studio linker

我有C ++项目的传统MSVS解决方案。当我从版本控制系统中取出它并尝试第一次构建它时(当它干净时) - 我收到错误:无法找到LNK 1104库。

当我第二次尝试构建它时 - 一切都建好了。

项目" A" (C ++)依赖于作为Project" B"的库(lib文件)。 (也是C ++)。

" A"在其中一个cpp文件中有这样的代码(对于#pragma注释,stdafx.h可能更好吗?):

#pragma comment(lib, "B.lib")

导致第一次构建

的链接器错误

我调查了第一个建成的结果:" B"项目已成功编译," lib"生成文件," A"项目(取决于" B")是解决方案项目构建顺序中的最后一个项目。

我想知道为什么" A"没有看到" B"图书馆第一次作为" B"应该早于" A"建造。当我第二次构建相同的解决方案时 - 没有链接器错误。

2 个答案:

答案 0 :(得分:1)

右键单击项目A>项目依赖性
检查项目B

VS不会从代码中扣除依赖关系,您需要明确告诉它

答案 1 :(得分:1)

这与构建顺序有关。如果首先构建项目A,则B.lib尚不存在。所以你得到了错误。然后构建项目B,并生成B.lib。当你再次构建时,由于库存在,错误就消失了。

要解决此问题,您需要告诉A依赖于B的解决方案。右键单击解决方案,转到项目依赖项,在“项目”中选择A并选中“{1}}”取决于上”。类似的东西:

enter image description here