加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

OpenCV:无法解析函数

发布时间:2020-12-13 22:42:36 所属栏目:百科 来源:网络整理
导读:在Eclipse开发环境中,使用CDT插件,进行OpenCV编程,发现编译器无法解析函数,甚至是最基本的OpenCV函数,报错:XX unresolved,no such file or directory。 百度一下发现也有不少同行遇到这样的问题,但他们基本上这些都是依赖存来问题,很显然,我的不是

在Eclipse开发环境中,使用CDT插件,进行OpenCV编程,发现编译器无法解析函数,甚至是最基本的OpenCV函数,报错:XX unresolved,no such file or directory。

百度一下发现也有不少同行遇到这样的问题,但他们基本上这些都是依赖存来问题,很显然,我的不是。


Sample 1: 依赖冲突

Q:opencv 在64位win7下链接出错:无法解析的外部符号 _cvDestroyWindow等

A:这个问题看起来是依赖库设置出了问题,如果在属性视图中设置好“连接器->输入”还是会出现这个问题,这个时候需要考虑一下是不是多设置了一些文件,导致库文件之间出现冲突:

我因为实在64位win7系统下,所以,设置的时候在每个目录中增加了:.../x64/lib 等64位系统下用到的库文件,如果在win32控制平台下运行程序的话,这样导致出现无法解析opencv中的函数名。所以,不要多加文件路径,导致冲突。

这位博主还说了:

“为了不让每一次都配置这些路径,最好在属性管理器中设置“Microsoft.Cpp.Win32.user”这个属性,这样就不必每次新建工程的时候都去配置相应的opencv文件。”

是个很好的建议!


Sample 2: 缺少依赖项

Q:openCV无法解析的外部符号-CvSVM、HOGDescriptor

A:一般遇到“无法解析的外部符号”问题出自项目中未添加“附加依赖项”。

这位博主还给出了实例,在这里就不引用了,总之,问题就是出在缺少依赖。


总结:

以上两个问题的原因分别是库文件依赖冲突和缺少依赖项,都是可能造成无法解析函数。


此外可能还有一种原因,就是笔者遇到的,OpenCV版本问题。笔者include了2.0版本的头文件,但是用了1.0版本的函数。尽管C++对C语言向下兼容,但使用2.0版本在混合使用1.0版本和2.0编程时,一定要注意两个版本的不同。


推荐资料:

OpenCV.2.Computer.Vision.Application.Programming.Cookbook,Published by Packet Publishing Ltd.,主要是2.0版本的OpenCV,使用C++语言API。下载链接

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读