OpenCV:无法解析函数
在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。下载链接 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |