错误1如下:
/usr/include/c++/6/cstdlib:75:25: fatal error: stdlib.h: 没有那个文件或目录
#include_next <stdlib.h>
原因:
这是由于gcc6已经吧stdlib.h纳入了libstdc++以进行更好的优化,C Library的头文件stdlib.h使用 Include_next,而include_next对gcc系统头文件路径很敏感。
解决方法:
在make之前,cmake时使用如下指令:
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local .. -DENABLE_PRECOMPILED_HEADERS=OFF
错误2如下:
error:‘CODEC_ID_H264’ was not declared in this scope
原因:
没有加载视频加解码的库,有时候是网络问题没法下载。改成如下即可。
解决方法:
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_FFMPEG=OFF .. -DENABLE_PRECOMPILED_HEADERS=OFF
错误3如下:
error: the compiler can assume that the address of ‘annotate_img’ will never be NULL [-Werror=address]
原因:
估计是重复申明了吧。
解决方法:
从当前build目录打开/modules/contrib/CMakeFiles/opencv_contrib.dir/flags.make文件 ,删掉-Werror=address即可。