树莓派3B+配置opencv make出错

错误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即可。

猜你喜欢

转载自blog.csdn.net/qq_17783559/article/details/81462599