[记录]在ubuntu12.04上用ndk编译ffmpeg的又一种方式

之前为了一直都是直接使用ndk编译android平台上的ffmpeg,看多了ndk的文件后,发现有一个文件叫make-standalone-toolchain.sh,因为名称里有个“toolchain”,所以上网了解了一下相关信息,找到了相比之前的编译方法更为简单的方式。

其实,make-standalone-toolchain.sh的文件名就是“搞个单独的工具链”,这个工具链就是方便我们进行交叉编译的啦;

那么,首先,就是这个文件的使用,命令为:$NDK/build/tools/make-standalone-toolchain.sh --platform=android-9 --install-dir=/home/xidige/android-toolchain --arch=arm,其中:NDK就是原先的ndk的目录,platform就是你的目标平台,install-dir就是准备存放工具链的地方,没有指定--arch参数的话默认就是arm(目前有三个:arm、mips、x86),根据自己需要修改就可以了。

接下来就是编译ffmpeg(其他的基本类似,去看configure -h,然后根据实际修改就可以了),我把内容写在一个sh文件里,这里简单贴一下我自己使用的吧:

#!/bin/bash
PREFIX=/home/xidige/mylibrary/armeabi

export CC="arm-linux-androideabi-gcc"
export AR="arm-linux-androideabi-ar"
export LD="arm-linux-androideabi-ld"
export CXX="arm-linux-androideabi-g++"
export RANLIB="arm-linux-androideabi-ranlib"
export OBJDUMP="arm-linux-androideabi-objdump"
export STRIP="arm-linux-androideabi-strip"
export AS="arm-linux-androideabi-as"
export NM="arm-linux-androideabi-nm"
export CFLAGS="-D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ -march=armv6"
export CXXFLAGS="-lstdc++"
export PATH=/home/programer/android-toolchain/bin/:$PATH

./configure --prefix="$PREFIX" \
--cross-prefix="arm-linux-androideabi-" --sysroot=/home/programer/android-toolchain/sysroot --enable-cross-compile --arch=arm --target-os=linux \
--extra-cflags="$CFLAGS" --extra-cxxflags="$CXXFLAGS" \
--enable-gpl \
--enable-version3 \
--enable-nonfree \
--disable-doc --disable-ffprobe --disable-ffserver --disable-ffplay \
--disable-w32threads \
--disable-os2threads \
--enable-pthreads \
--disable-shared \
--enable-static \
--disable-asm

make -j 4 && make install

 

如果有问题,可以看看《[记录]linux+mingw32交叉编译window平台的ffmpeg与其拓展库(x264、vpx、lame等)》或者《[记录]在window+cygwin中编译ffmpeg,采用的拓展库使用linux+mingw编译》,或者留言,我可以帮忙解决。

» 本文链接地址:https://www.xidige.com/578

打开支付宝扫一扫,即可进行扫码打赏哦

扫码支持
扫码打赏,你说多少就多少

标签:

分享到:

扫一扫 在手机阅读、分享本文

上一篇: 下一篇:
评论区0人评论1,039人参与

电子邮件地址不会被公开。 必填项已用*标注

*

loading

赞助商广告