opencv4.4.0编译安装

基础环境python3.7+cuda11.1+ubuntu22.04+cudnn8.1.1

1.非anaconda环境安装python3.7

sudo apt-get update
sudo apt-get upgrade
sudo apt install build-essential libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev zlib1g-dev openssl curl libsqlite3-dev -y
wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz
tar -xvf Python-3.7.3.tgz
cd Python-3.7.3
./configure --enable-loadable-sqlite-extensions --prefix=/usr/local/  --enable-shared CFLAGS=-fPIC
make
make install
ln -s /usr/local/bin/pip3 /usr/bin/pip
ln -s /usr/local/bin/python3 /usr/bin/python

终端非anaconda的base环境下输入命令python,显示python3.7版本就行。

2.安装依赖

sudo apt-get install build-essential cmake git unzip pkg-config -y
sudo apt-get install libjpeg-dev libpng-dev libtiff-dev -y
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev -y
sudo apt-get install libgtk2.0-dev libcanberra-gtk* -y
sudo apt-get install python3-dev python3-numpy python3-pip -y
sudo apt-get install libxvidcore-dev libx264-dev libgtk-3-dev -y
sudo apt-get install libtbb2-dev libtbb-dev libdc1394-22-dev -y
sudo apt-get install libv4l-dev v4l-utils -y
sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev -y
sudo apt-get install libavresample-dev libvorbis-dev libxine2-dev -y
sudo apt-get install libfaac-dev libmp3lame-dev libtheora-dev -y
sudo apt-get install libopencore-amrnb-dev libopencore-amrwb-dev -y
sudo apt-get install libopenblas-dev libatlas-base-dev libblas-dev -y
sudo apt-get install liblapack-dev libeigen3-dev gfortran -y
sudo apt-get install libhdf5-dev protobuf-compiler -y
sudo apt-get install libprotobuf-dev libgoogle-glog-dev libgflags-dev -y

建议使用sudo aptitude install XXX安装。

3.建立软链接

cd /usr/include/linux
sudo ln -s -f ../libv4l1-videodev.h videodev.h

4.下载opencv-4.4.0,opencv_contrib-4.4.0

opencv下载地址:https://opencv.org/releases/,找到4.4.0版本点击“sources
opencv_contrib下载:wget https://github.com/opencv/opencv_contrib/archive/4.4.0.zip或直接搜这个网址

5.解压合并

分别解压后将opencv_contrib-4.4.0移动到opencv-4.4.0下:

mv opencv_contrib-4.4.0 opencv-4.4.0

6.构建编译

注意这里必须要退出ananconda环境,即”base“,conda deactivate只是临时退出,建议禁止自启:

conda config --show | grep auto_activate_base

显示True,设为False:

conda config --set auto_activate_base False

之后

cd opencv-4.4.0
mkdir build
cd build

构建:(这里开始若出了bug看看文章最后有没有和你相同的情况)

cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.4.0/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=8.0 \
-D BUILD_opencv_python3=ON \
-D BUILD_opencv_python2=ON \
-D WITH_CUBLAS=ON \
-D WITH_CUDA=ON \
-D WITH_CUDNN=ON \
-D CUDA_GENERATION=Pascal \
-D BUILD_EXAMPLES=OFF ..

若成功则显示:
在这里插入图片描述
查看cpu最大线程数:

nproc

我的显示16,开始编译:

make -j16

或者直接:

make -j$(nproc)

能到100%就说明成功:
在这里插入图片描述

7.安装

sudo make install

成功最后显示:
在这里插入图片描述
接着:

sudo ldconfig
sudo apt-get update

8.验证

在这里插入图片描述

9.碰到的一些bug:(编译出问题可以查看opencv-4.4.0/CMakeFiles/CMakeError.log)

1.tbb库文件找不到的问题:tbb_stddef.h,tbb_config.h等:
一开始装依赖的时候我好像输入的是sudo apt-get install libtbb2 libtbb-dev(上面已改)然后有些头文件没装上,后面去github上搜tbb随便点一个,去他的include/tbb下找然后放到/usr/include/tbb下,不过还是会报错,之后我直接搜sudo apt search libtbb,然后装了个libtbb2-dev就ok了。

2.报错:Build output check failed:Regex: 'argument .* is not valid' Output line: 'cc1: warning: ‘-Werror=’ argument ‘-Werror=non-virtual-dtor’ is not valid for C'
这里是要用gcc-7和g+±7,这个我已经安装并设为默认但还是报错,还需要在CMakeLists.txt顶上添加:

set (CMAKE_C_COMPILER /usr/bin/gcc-7)
set (CMAKE_CXX_COMPILER /usr/bin/g++-7)

若还有其它的bug,就需要你查查别的博客了,总体上来说比较麻烦,折腾了一天…

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值