centos7上的opencv-3.0.0安装错误

centos7上的opencv-3.0.0安装错误,opencv,installation,centos7,Opencv,Installation,Centos7,我下载opencv-3.0.0.zip并解压缩它,然后执行: #cd opencv-3.0.0/ #mkdir build #cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=./build -D WITH_IPP=OFF ../opencv-3.0.0 #make -j8 它会犯一些错误: …… [ 49%] Building CXX object modules/imgcodecs/CMakeFiles/op

我下载opencv-3.0.0.zip并解压缩它,然后执行:

 #cd opencv-3.0.0/
 #mkdir build
 #cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=./build -D  WITH_IPP=OFF ../opencv-3.0.0
 #make -j8
它会犯一些错误:

 ……

[ 49%] Building CXX object 
modules/imgcodecs/CMakeFiles/opencv_imgcodecs.dir/src/grfmt_jpeg2000.cpp.o
In file included from /usr/include/jasper/jasper.h:77:0,
                 from /home/apps/zhimin.feng/software/opencv-3.0.0/modules/imgcodecs/src/grfmt_jpeg2000.cpp:59:
/usr/include/jasper/jas_math.h: In function ‘bool jas_safe_size_mul(size_t, size_t, size_t*)’:
/usr/include/jasper/jas_math.h:143:15: error: ‘SIZE_MAX’ was not declared in this scope
if (x && y > SIZE_MAX / x) {
           ^
/usr/include/jasper/jas_math.h: In function ‘bool jas_safe_size_add(size_t, size_t, size_t*)’:
/usr/include/jasper/jas_math.h:170:10: error: ‘SIZE_MAX’ was not declared in this scope
 if (y > SIZE_MAX - x) {
      ^
make[2]: *** [modules/imgcodecs/CMakeFiles/opencv_imgcodecs.dir/src/grfmt_jpeg2000.cpp.o] Error 1
make[1]: *** [modules/imgcodecs/CMakeFiles/opencv_imgcodecs.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....

我可能已经安装了所有的依赖项,但仍然出现了错误。

我终于从中找到了答案

编辑/usr/include/jasper/jas_math.h,添加

#if ! defined SIZE_MAX
#define SIZE_MAX (4294967295U)
#endif
之后

#包括

这是安装在yum中的jasper版本的失败。目前最好的办法是从2017年5月15日发布的更新版本(Release 30.el7)降级到基本软件包版本(Release 29.el7)

我已经创建了一张罚单。同时跑

sudo-yum-install-jasper-devel-1.900.1-29。el7
而不是
sudo-yum-install-jasper-devel
应该可以做到这一点

#include <stdint.h>