OpenCV3.4.10安装报错记录

我前面autoware1.14安装记录的博文已经记录过,这里为了方便我把这一部分单独拎出来

1.安装包下载

前往OpenCV官网https://opencv.org/releases/,选择3.4.10版本,点击source或者github下载,这里我选择github下载,下载完成后解压。
在这里插入图片描述

2.opencv_contrib下载

前往https://github.com/opencv/opencv_contrib,选择与opencv对应的版本。这里我的是3.4.10版本。
在这里插入图片描述

两个文件都下载完成后,把opencv_contrib放到解压后opencv文件夹里面。

3.安装依赖

sudo apt-get install build-essential 
 
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
 
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

4.安装

在opencv-3.4.10文件夹下新建build文件夹

cd opencv-3.4.10
mkdir build

在build路径下cmake编译

//注意将DOPENCV_EXTRA_MODULES_PATH路径改成自己的
cd build
cmake -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local -DINSTALL_PYTHON_EXAMPLES=ON -DINSTALL_C_EXAMPLES=OFF -DOPENCV_EXTRA_MODULES_PATH=/home/car/opencv-3.4.10/opencv_contrib-3.4.10/modules -DPYTHON_EXCUTABLE=/usr/bin/python2.7 -DWITH_CUDA=ON -DWITH_CUBLAS=ON -DDCUDA_NVCC_FLAGS="-D_FORCE_INLINES" -DCUDA_ARCH_BIN="6.1" -DCUDA_ARCH_PTX="" -DCUDA_FAST_MATH=ON -DWITH_TBB=ON -DWITH_V4L=ON -DWITH_GTK=ON -DWITH_OPENGL=ON -DCMAKE_C_COMPILER=/usr/bin/gcc-7 -DCUDA_HOST_COMPILER=/usr/bin/g++-7 -DCUDA_PROPAGATE_HOST_FLAGS=oFF -DCMAKE_CXX_FLAGS="-std=c++11" -DBUILD_TIFF=ON -DBUILD_EXAMPLES=ON ..

在这里插入图片描述

注意:需要修改为自己的opencv的路径。
然后进行make编译

sudo make -j8

出现以下报错:
问题一:fatal error:nvcuvid.h: No such file or directory
在这里插入图片描述

解决方法:
下载NVIDIA-SDK,下载地址:https://developer.nvidia.com/designworks/video_codec_sdk/downloads/v8.2-ga2。或者去csdn上面找现成的包(可能需要会员)
下载完成之后解压缩,文件路径Video_Codec_SDK_8.2.16->Samples->NvCodec->NvDecoder,将其中的nvcuvid.h, cuviddec.h连个文件copy到/usr/local/cuda/include/中,终端中输入指令

sudo cp nvcuvid.h /usr/local/cuda/include
sudo cp cuviddec.h /usr/local/cuda/include

终端中输入指令进入报错提醒的文件目录中

cd /home/car/opencv-3.4.10/modules/cudacodec/src/
gedit precomp.hpp

将文件中的

#if CUDA_VERSION >= 9000
        #include <dynlink_nvcuvid.h>
    #else
        #include <nvcuvid.h>
    #endif

改为

#if CUDA_VERSION >= 9000 && CUDA_VERSION < 10000 
        #include <dynlink_nvcuvid.h>
    #else
        #include <nvcuvid.h>
    #endif

参考链接:https://www.freesion.com/article/68371362181/
问题二:fatal error:boostdesc_bgm.i: No such file or directory
在这里插入图片描述

解决方法:
下载boostdesc_bgm.i等文件,并将其移动到opencv_contrib_3.4.10/modules/xfeatures2d/src目录下
参考链接:https://www.cnblogs.com/pine-apple/p/13176741.html
问题三:fatal error: opencv2/xfeatures2d/cuda.hpp: No such file or directory
在这里插入图片描述

解决方法:
将opencv_contrid-3.4.10/modules/xfeatures2d/include/opencv2下的xfeatures2d文件夹和xfeatures2d.hpp拷贝到opencv-3.4.10/modules/stitching/include/opencv2目录下,和stitching文件夹并列。

问题四:fatal error: opencv2/xfeatures2d/cuda.hpp: No such file or directory
在这里插入图片描述

解决方法:
打开/home/car/opencv3.4.10/samples/gpu/surf_keypoint_matcher.cpp
将红色引号的报错内容改为绝对路径
在这里插入图片描述

问题五:CMakeFiles/example_gpu_surf_keypoint_matcher.dir/surf_keypoint_matcher.cpp.o: In function `main’:
在这里插入图片描述

解决方法:
打开如下路径下的link.txt

/home/car/opencv-3.4.10/build/samples/gpu/CMakeFiles/example_gpu_surf_keypoint_matcher.dir/link.txt 

在如下位置加入
在这里插入图片描述

../../modules/xfeatures2d/CMakeFiles/opencv_xfeatures2d.dir/src/surf.cuda.cpp.o

参考链接:https://github.com/opencv/opencv/issues/9949
最后再次编译,成功!
在这里插入图片描述

最后安装

sudo make install

5.添加路径
打开文件

sudo gedit /etc/ld.so.conf

在文件中添加如下代码

/usr/loacal/lib

在这里插入图片描述

保存并关闭,运行下面的指令

sudo ldconfig

6.环境的配置
将以下两行添加到./bashrc文件中

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH

输入以下命令,查看所安装的opencv版本

pkg-config opencv --modversion

在这里插入图片描述

安装成功!

猜你喜欢

转载自blog.csdn.net/justinyjf/article/details/131880033
今日推荐