利用ndk交叉编译x264到arm平台(带neon版本)
来源:互联网 发布:豆角台剧网下载软件 编辑:程序博客网 时间:2024/04/28 03:02
啊 ,又是编译, 最近搞平台移植,版本整合真的很烦人啊!!!!
--extra-rcflags 这些选项来带上必要参数。 但是对于gcc、 汇编编译器、 链接器还是要通过CC、AS、LD指定
重复工作很多有木有, 细细碎碎有木有?!! 老是报错有木有?! 完全没有编码的成就感有木有?!! 烦都烦死了有木有?!! 还不得不搞有木有?!!!
干活。。。。。
概述:
x264的编译和之前我们看到的osip、ortp类似
也是利用编译的默认参数 CFLAG 、 LD、 CC等参数来控制编译目标
编译过程也是三步走:
1)configure
2)make
3)make install
X264版本:
x264用的是最近的稳定版本:x264-snapshot-20130507-2245-stable
下载地址:
ftp://ftp.videolan.org/pub/videolan/x264/snapshots/
注意事项
1) 这些编译参数都在configure 脚本中可以看到定义, 但是用configure -h 看不到提示。所以不要以为这些默认参数就没有使用, 当然你也可以利用 --extra-asflags、 --extra-cflags --extra-ldflags
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 选项,因为感觉不可控
- 利用ndk交叉编译x264到arm平台(带neon版本)
- 利用ndk交叉编译x264到arm平台(带neon版本)
- Android NDK编译带ARM neon优化的库
- 移植DHCP-4.1到ARM平台(交叉编译)
- 交叉编译libxml2到ARM平台
- linux下x264库ARM交叉编译
- 如何交叉编译Python到ARM-Linux平台
- 如何交叉编译Python到ARM-Linux平台
- 将交叉编译好的OpenCV移植到ARM平台
- ubuntu 16.04 交叉编译 mysql 5.7.16 到 arm平台
- 如何将mongodb-c-driver交叉编译到ARM平台
- arm平台交叉编译链
- 交叉编译ARM平台coreutils
- 交叉编译openssl arm平台
- 交叉编译x264(二)
- Ubuntu 下用NDK编译移植 ffmpeg 2.0 (配置最新版x264) 到android平台
- Ubuntu下用NDK编译移植FFmpeg 2.0(配置最新版x264)到Android平台
- Ubuntu 下用NDK编译移植 FFmpeg 2.0 (配置最新版x264) 到Android平台
- 传智播客.Net培训-1
- HDU 4639 Hehe(字符串动态规划)
- java编程思想笔记--内部类部分一
- LINUX定期执行一个PHP文件
- 解决linux redhat6下安装git的问题
- 利用ndk交叉编译x264到arm平台(带neon版本)
- Ubuntu 13.04 安装Emacs 24.3
- 如何利用OpenCV自带的haar training程序训练分类器
- VC 网络编程socket
- 关于多人物场景下遮挡关系的思考
- 发邮件相关代码
- 传智播客.Net培训-2
- Category分类
- 传智播客.Net培训-3