0

我有几个图书馆项目。我有一个解决方案,其中包括这些库项目和一个应用程序项目。我的问题是,在链接器中,我应该从这些单个项目的调试文件夹还是从该解决方案的调试文件夹链接 *.lib 文件?如果我单击重建,这些库项目将被编译为 *.lib 并且新的 *.lib 文件将在它们自己的解决方案/调试文件夹和当前调试文件夹中生成。

我的问题是,如果我将 Liker->General->Additional Library Directories 设置为它们各自的调试文件夹并将 Input->Additional Dependencies 设置为 *.lib 文件,Visual Studio 将给出一些随机链接器错误 1104 cant open *.lib 文件,但现在每次都是同一个lib文件,有时是Library1有时是Library2。如果我保留目录并将依赖项设置为所有这些 *.obj 文件。工作得很好。如果我删除目录并通过“U:\Source\Applications\CURRENTSOLUTION\Debug\Library1.lib”在当前解决方案调试文件中将依赖项设置为 *.lib 文件,它就可以正常工作。

那么,哪种方式是我的图书馆的正确方式?

4

1 回答 1

0

有时是 Library1 有时是 Library2

您可能有构建顺序问题。它在构建库之前开始构建您的 EXE 项目。现有方法的修复方法是右键单击您的 EXE 项目并选择“项目依赖项”。勾选图书馆项目。

但更好的解决方案是右键单击 EXE 项目、属性、通用属性、框架和引用。单击添加新引用按钮并勾选库项目。这不仅照顾了构建顺序,它还自动告诉链接器链接.libs。现在也可以在 Release 版本中使用,您现有的解决方案可能还没有这样做。

于 2013-04-29T22:20:04.277 回答