opencv3.4 ffmpeg3.4 arm-linux 交叉编译

一些依赖安装:

sudo apt-get install pkg-config libgtk2.0-dev libavcodec-dev libavformat-dev libswscale-dev

交叉编译工具链准备:gcc-linaro-6.3.1

1、下载https://github.com/FFmpeg/FFmpeg

解压后新建目录:Fmpeg-n3.4.13/ffmpeg_install

终端执行:

./configure --prefix=../FFmpeg-n3.4.13/ffmpeg_install --enable-gpl --enable-cross-compile --arch=arm64 --disable-stripping --target-os=linux --cc=../gcc-linaro-6.3.1-2017.02-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc --enable-shared --enable-static

make -j4

make install

2、

设置pkg-config

如果没安装pkg-config,请自行百度安装以下。

1.进入ffmpeg_instal的lib目录下的pkgconfig文件夹,拷贝pkgconfig路径

设置pkg-config变量PKG_CONFIG_PATH

export PKG_CONFIG_PATH=/home/zeng/FFmpeg/my_install/lib/pkgconfig

测试pkg-config设置是否正确:

执行: pkg-config --cflags libavformat

输出:-I/home/zeng/FFmpeg/my_install/include

3、下载opencv

https://github.com/opencv/opencv.git

新建opencv/build 文件夹

cd build

执行:

cmake -D CMAKE_BUILD_TYPE=RELEASE \

-D CMAKE_INSTALL_PREFIX=../opencv-3.4/build \

-D CMAKE_C_COMPILER=../gcc-linaro-6.3.1-2017.02-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc \

-D CMAKE_CXX_COMPILER=../gcc-linaro-6.3.1-2017.02-x86_64_aarch64-linux-gnu/bin/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 FFMPEG_INCLUDE_DIR=../FFmpeg-n3.4.13/ffmpeg_install/include \

-D FFMPEG_LIB_DIR=../FFmpeg-n3.4.13/ffmpeg_install/lib \

-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 BUILD_opencv_highgui=OFF \

..

make -j4

make install

注意这几个配置:

-D BUILD_SHARED_LIBS=OFF 生成静态库,ON即可生成动态so库

以下几个是配置FFMPEG:

-D WITH_FFMPEG=ON \

-D FFMPEG_INCLUDE_DIR=../FFmpeg-n3.4.13/ffmpeg_install/include \

-D FFMPEG_LIB_DIR=../FFmpeg-n3.4.13/ffmpeg_install/lib \

以下是编译器设置路径以及编译生成目录路径设置:

-D CMAKE_INSTALL_PREFIX=../opencv-3.4/build \

-D CMAKE_C_COMPILER=../gcc-linaro-6.3.1-2017.02-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc \

-D CMAKE_CXX_COMPILER=../gcc-linaro-6.3.1-2017.02-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++ \

相关推荐
家庭云计算专家2 分钟前
ONLYOFFICE协作空间3.1.1 企业版 介绍及部署说明:家庭云计算专家
运维·服务器·云计算·onlyoffice·协作空间
Ares-Wang7 分钟前
负载均衡LB》》HAproxy
运维·数据库·负载均衡
张海森-1688201 小时前
windows10搭建nfs服务器
linux
wanhengidc1 小时前
高防服务器能够抵御哪些网络攻击呢?
运维·服务器
Paddy哥2 小时前
linux 安装mysql8.0;支持国产麒麟,统信uos系统
linux·mysql·麒麟·统信uos·统信
G_whang2 小时前
VMware Workstation 与 Hyper-V 不兼容。请先从系统中移除 Hyper-V 角色,然后再运
linux
余辉zmh2 小时前
【Linux网络篇】:从HTTP到HTTPS协议---加密原理升级与安全机制的全面解析
linux·网络·http
凯勒姆3 小时前
6.linux文本内容显示cat,more,less
linux·运维·服务器
SailingCoder3 小时前
grafana-mcp-analyzer:基于 MCP 的轻量 AI 分析监控图表的运维神器!
运维·人工智能·typescript·node.js·grafana
资讯第一线4 小时前
Windows系统工具:WinToolsPlus 之 SQL Server 日志清理
运维