Ubuntu18.04配置Opencv2.4.10教程及一些问题的解决方案
使用的配置教程
此处主要参考了如下教程
遇到的问题
CMake Error at cmake/OpenCVDetectCXXCompiler.cmake
解决方案参见链接 直接点就是,将OpenCVDetectCXXCompiler.cmake文件中的"dumpversion" 替换为 “dumpfullversion”
CMake Error at cmake/OpenCVUtils.cmake:42 (if):
解决方案参见链接 解释一下,因为你make的文件夹在一个以C++开头的文件夹内部,这样就不能正常make了。修改方案是修改以C++开头的文件夹的名称,例如将C++XXX改为CplusXXX
/usr/include/c++/7/cstdlib:75:15: fatal error: stdlib.h: 没有那个文件或目录
修改Cmake命令为:
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local .. -D ENABLE_PRECOMPILED_HEADERS=OFF ..
参考
- error: ‘CODEC_ID_H264’ was not declared in this scope
解决方案: make时将ffmeg设置为off,即
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local .. -D ENABLE_PRECOMPILED_HEADERS=OFF .. -D WITH_FFMPEG=OFF ..
参考
- make -j4 编译到97%的时候,不弹出error语句,直接显示编译失败,
97 built target opencv_perf_gpu failed
网上没有现成的解决办法,我的解法是使用make -j1重新试试,看能不能有新收获; 新收获是,j8是多核编译,出问题的信息不一定最后被打印出来,这样你就只看到编译停止了,却可能不知道是哪里出了问题。如果是j1单核编译的话,一旦有问题出现编译就马上停止,也就知道问题在哪儿了。
小声bb:这丫的好多bug啊,这不正常,,,,,
- error: the compiler can assume that the address of ‘annotate_img’ will never be NULL [-Werror=address] 问题
进入源文件将包含NULL的相关语句注释掉就好了,详情参见
找到opencv-2.4.10/build/modules/contrib/CMakeFiles/opencv_contrib.dir/flags.make文件,删掉-Werror=return-type,然后重新 make -j8
- error: expected primary-expression before ‘const’
病因是前面替换的时候弄乱了里面的括号关系!!!所以,要小心
当然,一些warning是不会管的,正经人谁管warning啊(微笑)
|