编译* .lib文件visual studio

时间:2013-04-29 21:56:05

标签: c++ visual-studio-2010 linker

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

我的问题是,如果我将Liker-> General->附加库目录设置为其各自的调试文件夹,并将输入>附加依赖项设置为* .lib文件,Visual Studio将提供一些随机链接器错误1104 cant open * .lib文件,但它现在每次都是相同的lib文件,有时Library1有时候是Library2。 如果我保留目录并将依赖项设置为所有* .obj文件。工作得很好。 如果我删除了directores并通过“U:\ Source \ Applications \ CURRENTSOLUTION \ Debug \ Library1.lib”将当前解决方案调试文件中的依赖项设置为* .lib文件,那么它的工作正常。

那么,这是我的图书馆的正确方法吗?

1 个答案:

答案 0 :(得分:0)

  

有时候Library1有时候是Library2

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

但优越的解决方案是右键单击EXE项目,属性,公共属性,框架和参考。单击“添加新引用”按钮并勾选库项目。这不仅会处理构建顺序,还会自动告诉链接器链接.libs。现在也适用于Release版本,您现有的解决方案可能还没有这样做。