尝试 link dll 时出现错误 LNK2019 无法解析的外部符号

error LNK2019 unresolved external symbol when trying to link dll

我知道很多人都问过这个错误,相信我,我已经阅读了所有这些错误并遵循了所有步骤!但我仍然收到未解决的外部符号错误。

我试图在 visual studio 2012 的 c++ 代码中使用 lp_solve 的 dll(一个线性规划包)。 我收到的错误消息是: 错误 80 error LNK2019: 未解析的外部符号 _make_lp@8 在函数“void __cdecl my_solve(BLAH BLAH)

中引用

函数 make_lp() 来自 lp_solve 包,我在我的代码中从 my_solve() 调用它。对于我调用的每个求解器函数,都会弹出此错误消息。链接器似乎找不到这些函数的任何实现。

我已经完成了以下操作

  1. 将#include "lp_lib.h" 放入我的源代码中
  2. 将 lp_solve 包中的 .dll、.h 和 .lib 文件放入工作目录,并
  3. 在 Linker:General:Additional 库目录下添加了路径。
  4. 在 Linker:Input:Additional 依赖下添加了库

怎么了? 感谢您的帮助!

在您的 .cpp 中包含 lp_lib.h 时,使用 extern "C" 可能会有所帮助,如下所示:

extern "C"
{
#include "lp_lib.h"
}

有关详细信息,请查看此 link: http://www.geeksforgeeks.org/extern-c-in-c/

我发现我下载了 lp_solve 的 WIN64 包,但我的 visual studio 使用 WIN32 作为构建平台(即使我的机器是 x86_64),我的问题就解决了。