使用Visual Studio项目使Opencv可移植,并删除链接错误

Make Opencv portable with visual studio project and remove linkage errors

本文关键字:删除 链接 错误 可移植 Opencv Visual Studio 项目 使用      更新时间:2023-10-16

我正在尝试将opencv 2.4.13链接到Visual Studio项目。我在项目的子文件夹中有 .lib 和 .dll 文件。我添加了配置的相对路径。但我仍然收到链接错误。我的目标是使项目可移植:fi我将目录带到另一台机器上,我将能够在不单独在机器上安装 opencv 的情况下运行。

我添加的内容:

  • lib 子目录到其他库目录
  • 包含目录
  • 到其他包含目录
  • 链接器中的.dll ->输入 ->其他依赖项

下面是这些错误的示例:

LNK2019 unresolved external symbol __wcsdup_dbg referenced in function __Getctype   
LNK2001 unresolved external symbol __wcsdup_dbg 
LNK2019 unresolved external symbol __realloc_dbg referenced in function "private: static void __cdecl std::locale::_Locimp::_Locimp_Addfac(class std::locale::_Locimp *,class std::locale::facet *,unsigned int)" (?_Locimp_Addfac@_Locimp@locale@std@@CAXPAV123@PAVfacet@23@I@Z)

有什么想法吗?

确保所有库都使用相同的调试配置生成 - 也就是说,如果要生成项目的 DEBUG 版本,则需要将其链接到 DEBUG 库,如果要生成项目的 RELEASE 版本,则需要将其链接到 RELEASE 库。

同样,您需要确保其他所有内容在构建选项中都是兼容的 - 例如,如果库是在启用/MT 的情况下构建的,则还必须在启用/MT 的情况下构建应用程序。与调用约定(/Gd、/Gr、/Gz(、32 位或 64 位等相同。

您获得的链接器错误引用_dbg符号,这似乎意味着您在某处存在调试/发布不一致。

我终于用这个问题的答案想通了: 问题:OpenCV - 缺少 dll?

我刚刚将 dll 的路径添加到调试环境:项目 –> 属性 –> 配置属性 –>调试 –>

环境 –>在此处添加 dll 的路径,语法如下:

  • 例如,要将 C:\Windows\Temp 附加到 PATH:PATH=C:\WINDOWS\Temp;%PATH%
  • 类似地,要将 $(SolutionDir(\DLLS 追加到 PATH
  • :PATH=%PATH%;$(SolutionDir(\DLLS