利用ndk交叉编译x264到arm平台(带neon版本)

啊 ,又是编译, 最近搞平台移植,版本整合真的很烦人啊!!!!
重复工作很多有木有, 细细碎碎有木有?!! 老是报错有木有?!   完全没有编码的成就感有木有?!! 烦都烦死了有木有?!! 还不得不搞有木有?!!!  
干活。。。。。

概述:
x264的编译和之前我们看到的osip、ortp类似
也是利用编译的默认参数 CFLAG 、 LD、 CC等参数来控制编译目标

编译过程也是三步走:
1)configure
2)make 
3)make install

X264版本:
x264用的是最近的稳定版本:x264-snapshot-20130507-2245-stable
下载地址:

注意事项
1) 这些编译参数都在configure 脚本中可以看到定义, 但是用configure -h 看不到提示。所以不要以为这些默认参数就没有使用, 当然你也可以利用    --extra-asflags、   --extra-cflags    --extra-ldflags 
   --extra-rcflags 这些选项来带上必要参数。 但是对于gcc、 汇编编译器、 链接器还是要通过CC、AS、LD指定
2) 优化带neon, CFLAGS里面必须带上这些参数:  -march=armv7-a   -mfloat-abi=softfp -mfpu=neon
3)configure 执行成功的时候注意检查一下 config.log 和 config.mak.尤其是config.mak里面看看有没有什么编译参数被遗漏了。 比如我一开始没有指定AS, 于是在编译.S文件的时候总是报错,仔细一看才发现make用了linux的gcc做汇编编译,那必然报错。


编译脚本
贴一下脚本。 
#!/bin/sh 
export TMPDIR="/tmp/"
export NDKROOT="/opt/android-ndk-r8c"
export PRJ_ROOT="/home/hl/linphone_3.5.2"
export PREBUILT=$NDKROOT/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86
export SYSROOT=$NDKROOT/platforms/android-9/arch-arm
export CC=$PREBUILT/bin/arm-linux-androideabi-gcc
export LD=$PREBUILT/bin/arm-linux-androideabi-ld
export AS=$PREBUILT/bin/arm-linux-androideabi-gcc
export AR=$PREBUILT/bin/arm-linux-androideabi-ar
export RANLIB=$PREBUILT/bin/arm-linux-androideabi-ranlib
export STRIP=$PREBUILT/bin/arm-linux-androideabi-strip
CFLAGS="--sysroot=$NDKROOT/platforms/android-9/arch-arm -fPIC -DX264_VERSION -DANDROID -DHAVE_PTHREAD -D__ARM_ARCH_7__ -D__ARM_ARCH_7A__ -march=armv7-a -fomit-frame-pointer   -mfloat-abi=softfp -mfpu=neon   -I$NDKROOT/platforms/android-9/arch-arm/usr/include"
export CFLAGS
LDFLAGS="-Wl,-T,$PREBUILT/arm-linux-androideabi/lib/ldscripts/armelf_linux_eabi.x -Wl,-rpath-link=$NDKROOT/platforms/android-9/arch-arm/usr/lib -L$NDKROOT/platforms/android-9/arch-arm/usr/lib -nostdlib -lc -lm -ldl -lgcc"
export LDFLAGS
./configure --prefix=$PRJ_ROOT/libs -cross-prefix=arm-linux-androideabi --host=arm-linux --enable-pic --enable-strip --enable-thread --enable-static


这个编译脚本中没有用到 --sysroot选项和  --cross-prefix 选项,因为感觉不可控


转自http://blog.sina.com.cn/s/blog_4868f9860101923t.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值