有时候要安装环境,每次都忘记,记录一下。
1、安装cmake编译所需的包
sudo apt-get install make
sudo apt-get install gcc
sudo apt-get install g++
如果在命令窗口输入gcc -v或者g++ -v没有反应或者报错执行线面命令
cd /usr/bin/
sudo ln -s gcc-9 gcc
sudo ln -s g++-9 g++
输入gcc -v查看版本
sudo apt install libssl-dev
安装gcc-9主要是因为我尝试了高版本的gcc编译opencv4.7失败了,最后突然想起来之前也有过因为gcc版本过高的问题导致编译失败。切换低版本的gcc后成功了。
2、下载源码构建cmake
我下载的是cmake 3.23.0版本,版本别太高
git clone https://github.com/Kitware/CMake.git
进入到cmake文件夹内,执行一下命令。完成后可使用cmake –version查看版本号。
./bootstrap
make -j$(nproc) # 使用全部内核编译
sudo make install
3、下载opencv4.7的相关包,都在
这里
opencv-4.7.0.zip
opencv_contrib-4.7.0.zip
opencv_3rdparty-contrib_face_alignment_20170818.zip
opencv_3rdparty-contrib_xfeatures2d_boostdesc_20161012.zip
opencv_3rdparty-contrib_xfeatures2d_vgg_20160317.zip
opencv_3rdparty-ffmpeg-master_20211005.zip
opencv_3rdparty-ippicv-master_20191018.zip
opencv_3rdparty-wechat_qrcode_20210119.zip
v0.1.2a.zip
将安装包解压放在同级目录下,其中ADE文件夹下如图2所示:
接下来修改opencv-4.7.0内的部分文件,打开
opencv-4.7.0/3rdparty/ippicv/ippicv.cmake
,修改为:
打开
opencv-4.7.0/3rdparty/ffmpeg/ffmpeg.cmake
,修改为:
打开
opencv-4.7.0/modules/gapi/cmake/DownloadADE.cmake
,修改为:
打开
opencv_contrib-4.7.0/modules/face/CMakeLists.txt
修改为:
打开
opencv_contrib-4.7.0/modules/wechat_qrcode/CMakeLists.txt
修改为:
打开
opencv_contrib-4.7.0/modules/xfeatures2d/cmake/download_boostdesc.cmake
修改为:
打开
opencv_contrib-4.7.0/modules/xfeatures2d/cmake/download_vgg.cmake
修改为:
修改完成后在opencv-4.7.0文件夹内打开命令行,执行以下命令:
mkdir build
cd build
# -D CUDA_ARCH_BIN=8.6 \# 这个值需要按照你的显卡算力,这个可以查到。
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D INSTALL_C_EXAMPLES=OFF \
-D OPENCV_ENABLE_NONFREE=ON \
-D WITH_CUDA=ON \
-D WITH_CUDNN=ON \
-D OPENCV_DNN_CUDA=ON \
-D ENABLE_FAST_MATH=1 \
-D CUDA_FAST_MATH=1 \
-D CUDA_ARCH_BIN=8.6 \
-D WITH_CUBLAS=1 \
-D WITH_TBB=ON \
-D WITH_V4L=ON \
-D WITH_QT=ON \
-D WITH_OPENGL=ON \
-D WITH_GSTREAMER=ON \
-D OPENCV_GENERATE_PKGCONFIG=ON \
-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.7.0/modules/ ../ \
-D WITH_GTK_2_X=ON \
-D WITH_GTK=ON \
-D BUILD_opencv_rgbd=OFF ..
make -j$(nproc)/(make -j6)
sudo make install
opencv_version # 显示出opencv版本号即可