目录
一、适用软硬件环境
二、下载OpenCV、FFMPEG源码
三、设置交叉工具编译链接路径(重要)
三、交叉编译ffmpeg源码
五、交叉编译OpenCV源码
六、部署安装相关lib库
七、测试运行相关lib库
软件虚拟机:Ubuntu 18.04 topeet(北京迅为搭建)
软件交叉编译工具链:/usr/local/arm64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu
硬件开发板:北京迅为3568开发板、Firefly ROC-RK3588S-PC开发板等
编译目的:读取JPG图片数据,读取MP4视频数据,暂不支持视频编码(没有交叉编译x264)
OpenCV版本:opencv-3.4.3,FFMPEG下载官网:https://opencv.org/releases/,本文版本下载链接:https://github.com/opencv/opencv/archive/3.4.3.zip
FFmpeg版本:ffmpeg-4.2.9,FFMPEG下载官网:http://ffmpeg.org/download.html#releases ,本文版本下载链接:http://ffmpeg.org/releases/ffmpeg-4.2.9.tar.gz
设置环境变量PATH,增加后注意不要关闭控制台,否则需要重新设置环境变量,后续操作都在当前控制台。
export PATH="/usr/local/arm64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin:$PATH"
echo $PATH
aarch64-linux-gnu-gcc -v
(1)新建opcncv3_build文件夹,解压缩ffmpeg源码命令:tar -zxvf ./ffmpeg-4.2.9.tar.gz
(2)新建opencv3_install文件夹,用于存储交叉编译结果:
(3)进入./ffmpeg-4.2.9文件夹
(4)开始交叉编译ffmpeg源代码
./configure \
--enable-cross-compile \
--prefix=/home/topeet/workspace/opencv3_build/opencv3_install \
--cross-prefix=/usr/local/arm64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu- \
--arch=arm64 \
--target-os=linux \
--enable-gpl \
--extra-cflags=-fPIC \
--disable-filters \
--disable-encoders \
--enable-decoder=h264 --enable-parser=h264 --enable-demuxer=h264 \
--disable-asm --enable-parsers --disable-debug --enable-ffmpeg --enable-shared --disable-static --disable-stripping --disable-doc --disable-yasm --disable-libx264
make
make install
注:请使用步骤4所在的终端,不要重新打开终端,否则需要配置步骤4中的环境变量
(1)解压缩:unzip ./opencv-3.4.3.zip
(2)在opencv-3.4.3文件夹内,执行 mkdir arm64_install_opencv3创建文件夹,并进入
(3)设置交叉编译环境变量PKG_CONFIG_PATH
cp -r /home/topeet/workspace/opencv3_build/opencv3_install/lib/* /usr/local/arm64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/aarch64-linux-gnu/libc/lib
#可以不用复制上述lib,待验证
export PKG_CONFIG_PATH=/home/topeet/workspace/opencv3_build/opencv3_install/lib/pkgconfig/
source /etc/profile
#特别重要
(4)执行CMAKE,并交叉编译
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/home/topeet/workspace/opencv3_build/opencv3_install \
-D CMAKE_C_COMPILER=aarch64-linux-gnu-gcc \
-D CMAKE_CXX_COMPILER=aarch64-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=OFF \
-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 WITH_GTK=OFF -D WITH_GTK_2_X=OFF ..
make -j8
make install
编译成功后的lib库文件和include头文件:
打包压缩编译出的相关文件:
tar -zcvf opencv3_install.tar.gz ./opencv3_install
将相关lib文件拷贝至嵌入式目录 /lib64 文件夹中,即可运行
本文相关源代码及编译结果:https://download.csdn.net/download/dashuo0501/88485322