ubuntu20.04编译基于cuda11.3的opencv

1.安装依赖


# a fresh start in the morning
$ sudo apt-get update
$ sudo apt-get upgrade
# install the dependencies
$ sudo apt-get install build-essential cmake git unzip pkg-config
$ sudo apt-get install libjpeg-dev libpng-dev libtiff-dev
$ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev
$ sudo apt-get install libgtk2.0-dev libcanberra-gtk*
$ sudo apt-get install python3-dev python3-numpy python3-pip
$ sudo apt-get install libxvidcore-dev libx264-dev libgtk-3-dev
$ sudo apt-get install libtbb2 libtbb-dev libdc1394-22-dev
$ sudo apt-get install libv4l-dev v4l-utils
$ sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
$ sudo apt-get install libavresample-dev libvorbis-dev libxine2-dev
$ sudo apt-get install libfaac-dev libmp3lame-dev libtheora-dev
$ sudo apt-get install libopencore-amrnb-dev libopencore-amrwb-dev
$ sudo apt-get install libopenblas-dev libatlas-base-dev libblas-dev
$ sudo apt-get install liblapack-dev libeigen3-dev gfortran
$ sudo apt-get install libhdf5-dev protobuf-compiler
$ sudo apt-get install libprotobuf-dev libgoogle-glog-dev libgflags-dev
# a symlink to videodev.h
$ cd /usr/include/linux
$ sudo ln -s -f ../libv4l1-videodev.h videodev.h
$ cd ~

2. opencv编译设置

cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \
-D BUILD_TIFF=ON \
-D WITH_FFMPEG=ON \
-D WITH_GSTREAMER=ON \
-D WITH_TBB=ON \
-D BUILD_TBB=ON \
-D WITH_EIGEN=ON \
-D WITH_V4L=ON \
-D WITH_LIBV4L=ON \
-D WITH_VTK=OFF \
-D WITH_QT=OFF \
-D WITH_OPENGL=ON \
-D OPENCV_ENABLE_NONFREE=ON \
-D INSTALL_C_EXAMPLES=OFF \
-D INSTALL_PYTHON_EXAMPLES=OFF \
-D BUILD_NEW_PYTHON_SUPPORT=ON \
-D OPENCV_GENERATE_PKGCONFIG=ON \
-D BUILD_TESTS=OFF \
-D OPENCV_DNN_CUDA=ON \
-D ENABLE_FAST_MATH=ON \
-D CUDA_FAST_MATH=ON \
-D CUDA_ARCH_BIN=7.0 \
-D WITH_CUBLAS=ON \
-D WITH_CUDNN=ON \
-D CUDNN_LIBRARY=/usr/local/cuda/lib64/libcudnn.so.7.6.5 \
-D CUDNN_INCLUDE_DIR=/usr/local/cuda/include \
-D BUILD_EXAMPLES=OFF ..

这些配置可以使用cmake-gui完成,使用方法是

sudo apt-get install cmake-qt-gui

然后在下载的opencv源码目录

mkdir build
cd build
cmake-gui ..

点击Generate生成配置文件成功后,在build文件夹

make -j8
sudo make install

3.配置环境变量

sudo gedit /etc/ld.so.conf.d/opencv.conf

在最后加入

/usr/local/lib

然后

sudo ldconfig
sudo gedit /etc/bash.bashrc

在最后添加

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

最后

source /etc/bash.bashrc
sudo updatedb

出错1.CUDA_nppicom_LIBRARY (ADVANCED) 未定义

参考https://github.com/opencv/opencv/pull/17499/files
https://github.com/opencv/opencv_contrib/issues/2575,

在cmake/OpenCVDetectCUDA.cmake文件中找到

if(CUDA_FOUND)
  set(HAVE_CUDA 1)

改为加入

if(CUDA_FOUND)
  set(HAVE_CUDA 1)
  if(CUDA_VERSION VERSION_GREATER_EQUAL "11.0")
    # CUDA 11.0 removes nppicom
    ocv_list_filterout(CUDA_nppi_LIBRARY "nppicom")
    ocv_list_filterout(CUDA_npp_LIBRARY "nppicom")
  endif()

  if(WITH_CUFFT)
    set(HAVE_CUFFT 1)

出错2. 找不到nvcuvid.h

在NVIDIV官网下载https://developer.nvidia.com/nvidia-video-codec-sdk
解压后在Interface文件夹执行

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

重新编译即可

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值