在网上下载了别人的代码,在VS2013中编译,出现了很多次问题,大多是Error LNK2019和Error LNK2001,显示了很多的“无法解析的外部符号”,例如:
错误 18 error LNK2019: 无法解析的外部符号 "void __cdecl cv::error(int,class cv::String const &,char const *,char const *,int)" (?error@cv@@YAXHABVString@1@PBD1H@Z),该符号在函数 "public: unsigned char & __thiscall cv::Mat::at<unsigned char>(int,int)" (??$at@E@Mat@cv@@QAEAAEHH@Z) 中被引用 D:\Master Study\study program\SGM\Test\gaussian.obj Test
错误 19 error LNK2001: 无法解析的外部符号 "void __cdecl cv::error(int,class cv::String const &,char const *,char const *,int)" (?error@cv@@YAXHABVString@1@PBD1H@Z) D:\Master Study\study program\SGM\Test\main.obj Test
#############
非常恶心,一直找不到原因,后来在这篇博客“https://blog.csdn.net/sinat_29547669/article/details/46757485”的评论中看到了解释,“opencv发布版本区分x86和x64,如果你引用的库是属于x64的,那么VS中的平台必须选择x64,如果选择win32就会报错了”,后来去查看配置管理器,发现确实是自己的配置管理器没更改,通过在配置管理器中将win32改成x64就可以解决问题了。
#在用opencv编程时,遇到“无法解译的外部错误”,可以试试更改配置管理器中的解决方案平台再编译测试一下。