Ubuntu18.04配置Opencv2.4.10教程及一些问题的解决方案

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啊(微笑)

你可能感兴趣的:(opencv,ubuntu)