将 .lib 库链接到 Visual Studio 中的项目

Posted

技术标签:

【中文标题】将 .lib 库链接到 Visual Studio 中的项目【英文标题】:Linking a .lib library to a project in Visual Studio 【发布时间】:2016-03-02 06:58:12 【问题描述】:

不知何故,即使翻阅了很多资料,我也无法理解一件事。我在 Visual Studio 2013 中有一个 c++ 库项目。当我构建它时,它会创建 *.lib 文件。现在,我需要在另一个项目中链接 .lib 文件。我创建了一个名为lib 的文件夹,将.lib 文件转储到其中并将lib 文件夹的路径设置为Properties->Linker->General->Additional Library Directories。接下来我在Properties->Linker->Input->Additional Dependencies 中添加了库文件名*.lib。现在,构建项目会引发大量链接器错误,并带有消息unresolved external symbol ...。我需要做些什么来链接图书馆?

【问题讨论】:

【参考方案1】:

我不确定您的“另一个项目”使用的是什么语言,无论如何,如果您没有在代码中显式加载它,您应该在 Linker->Input->Additional Dependencies 中专门设置您的 *.lib 文件。

【讨论】:

另一个项目也在 C++ 中。对不起,我忘了说我已经做了你提到的事情。还有什么需要做的吗? 我需要一个带有 .lib 的 .dll 吗? @Nickal:这取决于 .lib。 .lib 可能包含完整的函数(不需要 DLL)或仅包含在 DLL 中定位函数的信息。由于您确实有一个 DLL,因此适用第二种情况。编译第二个项目使用 .lib,然后运行它使用 DLL。 @MSalters:如何知道我的 .lib 在你提到的两个中属于哪个类别? 实际上,我的第二个项目甚至没有编译,它会引发链接器错误。我为我的无知感到抱歉,但我不太了解所有这些东西。提前致谢。【参考方案2】:

如果两个项目位于同一个解决方案中,最简单的选择是右键单击项目,转到属性,然后转到通用属性,然后在框架和引用中添加对该库项目的引用。这将设置链接器以链接 .lib 并添加构建依赖项,因此 lib 始终在可执行文件之前编译。

【讨论】:

谢谢。我已经为另一个项目做到了这一点,但我试图链接的项目不在同一个解决方案中。除此之外,我想知道在这种情况下出了什么问题。这可能有助于我更好地了解图书馆。

以上是关于将 .lib 库链接到 Visual Studio 中的项目的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 链接器未加载库

Visual Studio 2017 动态链接库(DLL /LIB) 静态链接库(LIB)的思考

在 Visual Studio 2010 上将静态库链接到我的项目

visual studio添加lib库

visual studio2017 添加dll库

Visual studio那些破事。。。(生成静态库生成动态库引用静态库引用动态库)