环境:
显卡:3090Ti
CPU:I9
内存:64G
系统:Ubuntu20.04
安装顺序:
1、下载各个软件版本
(1)ubuntu-20.04.6-desktop-amd64.iso
(2)rufus-4.4.exe(制作ubuntu20的启动盘,需8GU盘)
(3)opencv4.7
(4)cuda_12.4.0_550.54.14_linux.run
wget https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda_12.4.0_550.54.14_linux.run
sudo sh cuda_12.4.0_550.54.14_linux.run
(5)cudnn-linux-x86_64-8.9.7.29_cuda12-archive.tar.xz
(6)TensorRT-8.6.1.6.Linux.x86_64-gnu.cuda-12.0.tar.gz
(7)Anaconda3-2023.09-0-linux-x86_64
编译准备:
sudo apt update
sudo apt install build-essential cmake unzip pkg-config
sudo apt install libjpeg-dev libpng-dev libtiff-dev
sudo apt install libavcodec-dev libavformat-dev libswscale-dev
sudo apt install libv4l-dev libxvidcore-dev libx264-dev libx265-dev
sudo apt install libgtk-3-dev
sudo apt install libblas-dev liblapack-dev gfortran
sudo apt install yasm libfaac-dev libmp3lame-dev libopus-dev libtheora-dev libvorbis-dev libxext-dev libxfixes-dev
一、安装ffmpeg
(1)解压
unzip FFmpeg-release-6.0.zip
(2)切换到根目录
cd FFmpeg-release-6.0.zip
(3)执行如下命令(构建编译)
./configure --prefix=/usr/local --enable-pic --enable-shared --disable-yasm --enable-gpl --enable-libmp3lame --enable-libopus --enable-libx264 --enable-libx265 --enable-nonfree --enable-pthreads
(4)执行编译
make
(5)安装
sudo make install
二、安装curl
第一种方式:ubuntu命令行安装curl
sudo apt install curl
sudo apt install libcurl4-openssl-dev
sudo apt install libcurl4-nss-dev
sudo apt install libcurl4-gnutls-dev
第二种方式:如果使用的linux系统不支持命令行安装,可以采用编译安装,操作如下
unzip curl-7.83.0.zip
cd curl-7.83.0
./configure
make
sudo make install
三、安装libevent
第一步:ubuntu命令行的方式安装libevent依赖库
sudo apt install libssl-dev
第二步:开始编译安装
1、解压
tar -xzvf libevent-2.1.12-stable.tar.gz
2、切换到根目录
cd libevent-2.1.12-stable
mkdir build & cd build
cmake -D CMAKE_BUILD_TYPE=Release ..
make
sudo make install
四、安装jsoncpp
1、解压
unzip jsoncpp-master.zip
2、切换到根目录
cd jsoncpp-master
mkdir build & cd build
cmake -D CMAKE_BUILD_TYPE=Release ..
make
sudo make install
五、安装opencv(编译安装)
(1)cudnn安装
查询cuda版本,nvcc -V。如果多版本,修改链接改变版本:
nvcc --version
sudo cp include/cudnn* /usr/local/cuda-12.3/include/
sudo cp lib64/libcudnn* /usr/local/cuda-12.3/lib64/
sudo chmod a+r /usr/local/cuda-12.3/include/cudnn*
sudo chmod a+r /usr/local/cuda-12.3/lib64/libcudnn*
sudo rm -rf /usr/local/cuda
sudo ln -s /usr/local/cuda-12.3/ /usr/local/cuda
nvcc --version
(2)opencv
第一步:使用命令行安装opencv依赖库,如果linux系统不支持命令行安装如下依赖库,那就需要手动编译安装了
sudo apt install build-essential libgtk2.0-dev
sudo apt libjpeg.dev libtiff5.dev //可以不安装
第二步:编译安装
切换到根目录
cd opencv-4.7/opencv/sources
创建构建文件
mkdir build & cd build
cmake -D CMAKE_BUILD_TYPE=Release \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_EXTRA_MODULES_PATH=../../../opencv_contrib-4.7.0/modules \
-D OPENCV_GENERATE_PKGCONFIG=ON \
-D WITH_TBB=ON \
-D ENABLE_FAST_MATH=1 \
-D WITH_CUBLAS=1 \
-D OPENCV_ENABLE_NONFREE=ON \
-D INSTALL_C_EXAMPLES=OFF \
-D INSTALL_PYTHON_EXAMPLES=OFF \
-D BUILD_opencv_python3=OFF \
-D BUILD_opencv_python3_tests=OFF \
-D CUDA_nppi_LIBRARY=true \
-D BUILD_EXAMPLES=ON
-D WITH_CUDA=ON
-D WITH_CUDNN=ON
-D OPENCV_DNN_CUDA=ON
-D WITH_CUBLAS=ON
-D CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda
-D OpenCL_LIBRARY=/usr/local/cuda/lib64/libOpenCL.so
-D OpenCL_INCLUDE_DIR=/usr/local/cuda/include/ \
-D BUILD_TIFF=ON \
-D OPENCV_GENERATE_SETUPVARS=OFF \
..
make -j 8
sudo make install
错误:
(1)安装有hpp失败,要做static_cast转换,参考最后的代码
(2) ffmepge采用6.0,tiff开关需要打开
(3)库文件错误:
出现找不到curl4的问题:
sudo ln -s /usr/lib/x86_64-linux-gnu/libcurl.so.4.6.0 /usr/local/lib/libcurl.so.4
出现uuid链接引用问题:
ln -s /usr/lib/x86_64-linux-gnu/libuuid.so.1.3.0 /home/ubuntu/anaconda3/lib/libuuid.so.1
编译成功:
(4)其他参考:
Ubuntu 20.04源码编译安装OpenCV 4.7.0_ubuntu20.04安装opencv4.7 opencv-contrib-CSDN博客
ubuntu20.04安装tensorRT流程梳理-CSDN博客
ubuntu下cmake+opencv+cuda+cudnn+tensorRT开发环境配置_c++ opencv cuda tensorrt-CSDN博客