本来想着剩下的工作只是为工程配置好路径以及要使用的.lib文件即可,结果编译报错,说是在opencv2下面找不到opencv_nonfree.hpp,打开文件夹一看确实没有,上网一搜才知道opencv3.0之后nonfree模块整个被挪到contrib模块了,而且默认的opencv代码下载里还没有contrib模块,得去github上面下载下来,然后在CMake里为OPENCV/OPENCV_EXTRA_MODULES_PATH设置好contrib代码路径再重新整个编译一遍才行,这样也就算了,关键是sift和surf的使用方法发生了变化,这意味着即使设置好了库,后续也需要更新很多我自己的代码才行,想想头都大了,于是想着回到2.4.8版本,结果在windows 10(64-bit)下用vs2015(x86)CMake进行configure都会报错,提示什么
CMake Warning (dev) at apps/haartraining/CMakeLists.txt:37 (add_library):
Policy CMP0038 is not set: Targets may not link directly to themselves.
Run "cmake --help-policy CMP0038" for policy details. Use the cmake_policy
command to set the policy and suppress this warning.
Target "opencv_haartraining_engine" links to itself.
This warning is for project developers. Use -Wno-dev to suppress it.
然后强行configure后,点击generate,又报错。。。:
CMake Error: install(EXPORT "OpenCVModules" ...) includes target "opencv_world" which requires target "zlib" that is not in the export set.
虽然能生成.sln,但是总感觉即使最终生成了库,其中也会有问题。
所以又想着是不是2.4.8版本太低了,于是下载了2015年才发布的2.4.11,即最后的2.4版本,结果cmake的时候configure确实没问题,可generate的时候还是出现了上述错误,而且搜索相关问题都没有发现解决方案,挺郁闷的,到现在为止还是决定把3.1的contrib模块整过来算了,后续慢慢改自己的调用吧。
没有评论:
发表评论