把平时使用opencv过程中遇到的问题汇总并把解决办法记在这里。不保证对每个人都适用。
1.问题1:配置好Opencv导入到HEVC的HM测试平台后,fatal error C1083: 无法打开包括文件:“iostream”:编译提示找不到< iostream>、< vector>等头文件。
解决办法:网上绝大部分配置Opencv的教程都是将头文件和lib库使用“”包含目录”和“”库目录”
将第三方库如Opencv、FFMPEG等使用c/c++->常规->附加包含目录和链接器->常规->附加库目录取代使用包含目录和库目录。
2.问题2:64位电脑在x64下不能使用opencv,出现诸如: error LNK2019: 无法解析的外部符号 “void __cdecl cv::fastFree(void *)” (?fastFree@cv@@YAXPAX@Z),该符号在函数 “public: __thiscall cv::Mat::~Mat(void)” (??1Mat@cv@@QAE@XZ) 中被引用
出现这个现象是没有在工程中配置Opencv,问题可能出现在以下几个方面:
- 当前所调试项目没有配置opencv,或者在x86 release下配置的opencv,但当前是在debug x86下调试程序。
- 配置的opencv是32位的,但建立的工程是x64下的,则需要在x64下配置工程,若配置好x64下的opencv还是不行,则需要检查以下电脑环境变量是否把自己电脑opencv文件库x64下的如下路径添加:
D:\opencv2.4.13\opencv\build\x64\vc12\bin
3.问题3:vs2013下配置好x64的opencv,在x64的debug模式下能用,但release不能用。
原因:在添加附加依赖项时,debug模式下和release模式下应该使用不同的库文件。
release模式下的库文件不带d
,形如opencv_ml2413.lib
使用如下
debug模式下的库文件使用带d
的,形如opencv_ml2413d.lib
使用如下