这里以opencv-4.6.0为例子。
一、准备工作
下载:
opencv-4.6.0
opencv_contrib-4.6.0
.cache 提取码:0816
eigen-3.3.9.
ffmpeg-6.0
yasm-1.3.0
交叉编译器_gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu.tar.xz
二、安装ffmpeg
2.1、安装yasm
tar zxvf yasm-1.3.0.tar.gz #解压
cd yasm-1.3.0 #进入目录
./configure #配置
make && make install #编译安装
2.2、安装ffmpeg
tar -zxvf ffmpeg-6.0.tar.xz
cd ffmpeg-6.0
./configure --enable-shared --prefix=/usr/local/ffmpeg
或者(未验证)
./configure --enable-shared --enable-ffplay --enable-ffserver --prefix=/usr/local/ffmpeg
make
make install
2.3、添加ffmpeg环境
sudo vim /etc/ld.so.conf.d/ffmpeg.conf
添加:
/usr/local/ffmpeg/lib
# 刷新
sudo ldconfig
sudo vim /etc/profile
# 添加
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/ffmpeg/lib/pkgconfig
# 刷新
source /etc/profile
注意:不要关闭当前终端!后面编译opencv也在当前终端。这里很重要!
# 查看ffmpeg版本
ffmpeg -version
三、编译opencv
cd your opencv dir
unzip opencv-4.6.0.zip
unzip opencv_contrib-4.6.0.zip
cd opencv-4.6.0
unzip .cache.zip #将.cache解压到opencv-4.6.0下
mkdir build
mkdir build/aarch64_1
mkdir install
mkdir install/aarch64_1
cd build/aarch64_1
#安装一些依赖
sudo apt install cmake git libavcodec-dev libavformat-dev libswscale-dev \
python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev \
libjasper-dev libdc1394-22-dev
sudo apt install libgtk2.0-dev
sudo apt install pkg-config
安装libgtk2.0-dev时的报错,解决方案
# 配置
cmake \
-D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_C_COMPILER=gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-gcc \
-D CMAKE_CXX_COMPILER=gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-g++ \
-D BUILD_SHARED_LIBS=ON \
-D CMAKE_CXX_FLAGS=-fPIC \
-D CMAKE_C_FLAGS=-fPIC \
-D CMAKE_EXE_LINKER_FLAGS="-lpthread -ldl" \
-D ENABLE_PIC=ON \
-D WITH_1394=OFF \
-D WITH_ARAVIS=OFF \
-D WITH_ARITH_DEC=ON \
-D WITH_ARITH_ENC=ON \
-D WITH_CLP=OFF \
-D WITH_CUBLAS=OFF \
-D WITH_CUDA=OFF \
-D WITH_CUFFT=OFF \
-D WITH_FFMPEG=ON \
-D WITH_GSTREAMER=ON \
-D WITH_GSTREAMER_0_10=OFF \
-D WITH_HALIDE=OFF \
-D WITH_HPX=OFF \
-D WITH_IMGCODEC_HDR=ON \
-D WITH_IMGCODEC_PXM=ON \
-D WITH_IMGCODEC_SUNRASTER=ON \
-D WITH_INF_ENGINE=OFF \
-D WITH_IPP=OFF \
-D WITH_ITT=OFF \
-D WITH_JASPER=ON \
-D WITH_JPEG=ON \
-D WITH_LAPACK=ON \
-D WITH_LIBREALSENSE=OFF \
-D WITH_NVCUVID=OFF \
-D WITH_OPENCL=OFF \
-D WITH_OPENCLAMDBLAS=OFF \
-D WITH_OPENCLAMDFFT=OFF \
-D WITH_OPENCL_SVM=OFF \
-D WITH_OPENEXR=OFF \
-D WITH_OPENGL=OFF \
-D WITH_OPENMP=OFF \
-D WITH_OPENNNI=OFF \
-D WITH_OPENNNI2=OFF \
-D WITH_OPENVX=OFF \
-D WITH_PNG=ON \
-D WITH_PROTOBUF=OFF \
-D WITH_PTHREADS_PF=ON \
-D WITH_PVAPI=OFF \
-D WITH_QT=OFF \
-D WITH_QUIRC=OFF \
-D WITH_TBB=OFF \
-D WITH_TIFF=ON \
-D WITH_VULKAN=OFF \
-D WITH_WEBP=ON \
-D WITH_XIMEA=OFF \
-D CMAKE_INSTALL_PREFIX=../../install/aarch64_1 \
-D WITH_GTK=OFF \
-D WITH_EIGEN=ON \
-D EIGEN_INCLUDE_PATH="path/eigen-3.3.9" \
-D OPENCV_EXTRA_MODULES_PATH="../../../opencv_contrib-4.6.0/modules" \
-D BUILD_ZLIB=ON \
-D ZLIB_INCLUDE_DIR="../../3rdparty/zlib" \
-D OPENCV_GENERATE_PKGCONFIG=ON \
../..
以上,有路径的地方都需要根据自己的实际情况进行修改。
CMAKE_C_COMPILER=
CMAKE_CXX_COMPILER=
CMAKE_INSTALL_PREFIX=
EIGEN_INCLUDE_PATH=
OPENCV_EXTRA_MODULES_PATH=
ZLIB_INCLUDE_DIR=
# 配置好ffmpeg后,终端显示以下。
-- Video I/O:
-- FFMPEG: NO
-- avcodec: YES (60.3.100)
-- avformat: YES (60.3.100)
-- avutil: YES (58.2.100)
-- swscale: YES (7.1.100)
-- avresample: NO
-- GStreamer: NO
-- v4l/v4l2: YES (linux/videodev2.h)
#编译
make -j10
make install
四、移植
打包install下面的aarch64_1,并将其放入RK3588上,然后解压。文章来源:https://www.toymoban.com/news/detail-715321.html
# 例如,解压的路径是/home/pi/lib/aarch64_1
sudo vim /etc/ld.so.conf.d/opencv.conf
添加:
/home/pi/lib/aarch64_1/lib
#生效
sudo ldconfig
五、成品
提取码0816文章来源地址https://www.toymoban.com/news/detail-715321.html
到了这里,关于瑞芯微RK3588,交叉编译opencv的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!