将 .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 2017 动态链接库(DLL /LIB) 静态链接库(LIB)的思考