本帖最后由 myzr_soft 于 2020-4-2 11:58 编辑
主机平台: UBUNTU14.04
硬件平台:明远智睿MY-IMX8M-EVK
内核版本 :linux-4.14.98
交叉编译链:aarch64-linux-gnu-gcc
文件系统:fsl-image-validation-myimx8m
解压: $ cd ffmpeg
设置环境变量: $ source /home/myzr/my-work/03_toolchain/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.env (注意:都要编译都要设置环境变量)
编译:
配置configure脚本 $ ./configure --prefix=/home/myzr/my-work/source_tar/ffmpeg/install --enable-shared --disable-static --enable-gpl --enable-cross-compile --arch=arm64 --disable-stripping --target-os=linux --cc=aarch64-linux-gnu-gcc --enable-swscale --extra-ldflags=-L/home/myzr/my-work/source_tar/ffmpeg/install/lib --extra-cflags=-I/home/myzr/my-work/source_tar/ffmpeg/install/include
./configure的配置非常重要,没有配置正确都有可能编译不通过,每个应用的配置都有可能是不同的。(注意:配置的时候要使用绝对路径) 配置的参数:
--prefix=/home/myzr/my-work/source_tar/ffmpeg/install64 此条是为了确定编译安装的路径,不确定好路径会导致安装编译完不知道编译去了哪。
--enable-shared 使能编译后会链接成共享对象,即是编译成动态链接库
--disable-static 不使能编译后生成静态对象,即是不会编译成静态库
--enable-gpl 使能必须以GPL发布
--enable-cross-compile 使能交叉编译
--arch=arm 指定架构,一般是arm,32位的。如果是64位的,请更改为arm64
--disable-stripping 禁用剥离可执行程序和共享库
--target-os=linux 指定目标操作系统
--cc=aarch64-linux-gnu-gcc 指定编译使用的交叉编译工具,如果开发板不支持此款交叉编译工具是不可使用的,一般为平时所用平台的交叉编译工具。
--enable-swscale
--extra-ldflags=-L/home/myzr/my-work/source_tar/ffmpeg/install64/lib 指定将应用的库函数放入此目录
--extra-cflags=-I/home/myzr/my-work/source_tar/ffmpeg/install64/include 指定将应用的include文件放入此目录下
$ make<--正式编译
$ make install<--安装
打包安装目录:
$ cd ../install
$ sudo tar -cjf ffmpeg.tar.bz2 ./* ----将其压缩打包
把打包好的压缩包ffmpeg.tar.bz2利用tftp移动到开发板根目录进行解压: $ tftp -g -r ffmpeg.tar.bz2 192.168.137.99
$ tar -xvf ffmpeg.tar.bz2 -C / 解压到根目录下对应的lib,bin,share等目录下
最后输入以下命令查看,ffmpeg的命令帮助,证明已经移植成功。 $ ffmpeg -h |