瑞芯微RK3588,交叉编译opencv

这里以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上,然后解压。

# 例如,解压的路径是/home/pi/lib/aarch64_1
sudo vim /etc/ld.so.conf.d/opencv.conf
添加:
/home/pi/lib/aarch64_1/lib

#生效
sudo ldconfig

五、成品

提取码0816

猜你喜欢

转载自blog.csdn.net/wave789/article/details/131804601