使用android ndk交叉编译libx264的编译脚本

24 篇文章 0 订阅
12 篇文章 0 订阅

使用的android ndk的编译版本是android_ndk_r8e

在libx264的源代码目录下建立编译脚本:build_android_r8e.sh,内容如下:

NDK=$HOME/bin/android-ndk-r8e/
PLATFORM=$NDK/platforms/android-8/arch-arm/
PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64
CPU=armv7-a
PREFIX=$HOME/projects/dolphin-player/p/native/android/$CPU                                                                                                                                                   
ADDITIONAL_CONFIGURE_FLAG="-march=armv7-a -mtune=cortex-a8 -mfloat-abi=softfp -mfpu=vfp -D__ARM_ARCH_7__ -D__ARM_ARCH_7A__"

./configure --host=arm-linux \
    --prefix=$PREFIX \
    --sysroot=$PLATFORM \
    --cross-prefix=$PREBUILT/bin/arm-linux-androideabi- \
    --enable-pic \
    --enable-strip \
    --enable-static \
    --extra-cflags=$ADDITIONAL_CONFIGURE_FLAG

make uninstall
make clean
make -j4
make install

configure时会报如下:
Unknown option -mtune=cortex-a8, ignoredUnknown option -mfloat-abi=softfp, ignored
Unknown option -mfpu=vfp, ignored
Unknown option -D__ARM_ARCH_7__, ignored
Unknown option -D__ARM_ARCH_7A__, ignored
可见上面的ADDITION_CONFIGURE_FLAG 中除了-march=armv7-a有用,其余的可能都没有用处.当然这些都不影响编译.

注意:--cross-prefix配置的是编译器的前缀prefix,因此只需要写arm-linux-androideabi-, 而不需要写arm-linux-androideabi-gcc,即不加上后面的gcc,如果加了,反而会报找不到编译器,会用gcc编译,而不是交叉编译器了.

refer to:
http://blog.chinaunix.net/uid-20104447-id-3823071.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值