【问题标题】:Unresolved external symbol errors without #pragma comment lib command没有#pragma comment lib 命令的未解决的外部符号错误
【发布时间】:2018-08-03 19:51:38
【问题描述】:

我在我的 VS2008 解决方案中添加了一个项目,并通过项目设置窗口在我的启动项目中设置了对这个新添加项目的依赖关系。问题是我到处都有unresolved external symbol 错误,但是一旦我使用我的库的函数在文件中写了#pragma comment (lib, "path_to/my_lib.lib") 行,一切正常。具体来说,我在包含之后添加了该行

#include "path_to/my_lib.h"
#pragma comment (lib, "path_to/my_lib.lib")

我读到它是为了在项目设置窗口中设置依赖关系,写#pragma comment (lib, "path_to/my_lib.lib") 行是一回事。为什么我有所有未解决的外部符号错误,但没有在代码中写入特定行?是不是因为它在 VS2008 选项的 VC++ 目录中给定的不同文件夹中寻找这种依赖关系?

【问题讨论】:

    标签: c++ visual-studio-2008 linker c++-cli


    【解决方案1】:

    我不确定我是否理解你的问题。

    “……是一回事……”不,不是一回事。

    项目依赖 如果您选择的项目 P0 依赖于项目 DLL1 但不依赖于项目 DLL3,则 IDE 会在 P0 之前更新(构建)DLL1。请参阅下面的第一张图片。

    链接器依赖项(链接到库)使用#pragam comment(lib... 或转到项目的设置以选择库。这些库不一定属于您的解决方案。请参见下面的第二张图片。

    错误的项目依赖可能会产生链接错误,例如:

    • 库是您解决方案的一部分
    • 您修改了库的接口(例如更改了函数签名)
    • 您修改项目以适应新界面(调用具有新签名的函数)
    • 您项目的依赖项未设置为首先构建(更新)库项目;因此它会尝试链接到旧库(旧函数签名)

    【讨论】:

      猜你喜欢
      • 2011-09-03
      • 2010-11-20
      • 2022-06-11
      • 2011-10-21
      • 2012-10-21
      • 2014-05-12
      • 2014-05-14
      • 2021-10-30
      相关资源
      最近更新 更多