【问题标题】:Linking a .lib library to a project in Visual Studio将 .lib 库链接到 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 ...。我需要做些什么来链接图书馆?

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

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

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

    【讨论】:

    • 谢谢。我已经为另一个项目做到了这一点,但我试图链接的项目不在同一个解决方案中。除此之外,我想知道在这种情况下出了什么问题。这可能有助于我更好地了解图书馆。
    猜你喜欢
    • 2017-04-20
    • 2019-09-12
    • 2011-09-28
    • 1970-01-01
    • 1970-01-01
    • 2021-09-05
    • 1970-01-01
    • 2021-11-19
    • 1970-01-01
    相关资源
    最近更新 更多