使用visual studio项目使Opencv可移植并删除链接错误

时间:2017-04-13 14:25:23

标签: c++ visual-studio opencv

我正在尝试将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)

任何想法?

1 个答案:

答案 0 :(得分:0)

确保所有库都使用相同的调试配置构建 - 也就是说,如果您正在构建项目的DEBUG版本,则需要将其链接到DEBUG库,如果您正在构建RELEASE版本对于您的项目,您需要将其与RELEASE库链接。

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

链接器错误您将获得引用_dbg符号,这似乎暗示您在某处存在DEBUG / RELEASE不一致。