Ubuntu 32下Android NDK+NEON的配置过程及简单使用举例
来源:互联网 发布:域名查询接口 编辑:程序博客网 时间:2024/06/05 09:59
1、 利用VMware在Windows7 64位下安装Ubuntu13.10 32位虚拟机;
2、 从 https://developer.android.com/tools/sdk/ndk/index.html下载android-ndk32-r10-linux-x86.tar.bz2;
3、 将android-ndk32-r10-linux-x86.tar.bz2拷贝到Ubuntu的/home/spring/NEON文件夹下,并解压缩;
4、 配置环境变量:在终端输入 sudovi /etc/profile , 打开profile文件,在此文件最后加上:
export NDKROOT=/home/spring/NEON/android-ndk-r10 (注意:绝对路径)
export PATH=$NDKROOT:$PATH
5、 保存profile文件,重启Ubuntu;
6、 输入 echo $PATH,会有/home/spring/NEON/android-ndk-r10 ;
7、 输入 ndk-build,显示AndroidNDK 等相关信息,说明配置NDK成功;
8、 安装arm-linux-gcc(基于arm架构的linux平台交叉编译工具):从http://www.arm9.net/download.asp 下载arm-linux-gcc-4.4.3-20100728.tar.gz;
9、 将arm-linux-gcc-4.4.3-20100728.tar.gz拷贝到Ubuntu的/home/spring/NEON文件夹下,并解压缩;tarxvzf arm-linux-gcc-4.4.3-20100728.tar.gz
10、 配置环境变量:在终端输入 sudo vi /etc/profile , 打开profile文件, 在此文件最后加上:exportPATH=$PATH:/home/spring/NEON/opt/FriendlyARM/toolschain/4.4.3/bin ,保存profile;
11、 重启Ubuntu,在终端输入 arm-linum-gcc -v ,如果显示gcc version 4.4.3等相关信息,说明配置成功。
示例代码(http://hilbert-space.de/?p=22) test.cpp:
void reference_convert (uint8_t * __restrict dest, uint8_t * __restrict src, int n){ int i; for (i=0; i<n; i++) { int r = *src++; // load red int g = *src++; // load green int b = *src++; // load blue // build weighted average: int y = (r*77)+(g*151)+(b*28); // undo the scale by 256 and write to memory: *dest++ = (y>>8); }}void neon_convert (uint8_t * __restrict dest, uint8_t * __restrict src, int n){ int i; uint8x8_t rfac = vdup_n_u8 (77); uint8x8_t gfac = vdup_n_u8 (151); uint8x8_t bfac = vdup_n_u8 (28); n/=8; for (i=0; i<n; i++) { uint16x8_t temp; uint8x8x3_t rgb = vld3_u8 (src); uint8x8_t result; temp = vmull_u8 (rgb.val[0], rfac); temp = vmlal_u8 (temp,rgb.val[1], gfac); temp = vmlal_u8 (temp,rgb.val[2], bfac); result = vshrn_n_u16 (temp, 8); vst1_u8 (dest, result); src += 8*3; dest += 8; }}
12、执行命令: arm-linux-gcc –g –c –Os –fPIC–mfloat-abi=softfp –mfpu=neon test.cpp
ar –r libtest[android].a *.o 成功生成libtest[android].a静态库。
还有另外一种方法,就是无需安装arm-linux-gcc,直接用Android-NDK即可,操作步骤如下:
1、 接着以上第7步;
2、 添加环境变量:在终端输入 sudovi /etc/profile , 打开profile文件,在此文件最后加上:
export NDKBIN=/home/spring/NEON/android-ndk-r10/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86/bin(注意:绝对路径)
export PATH=$NDKBIN:$PATH
3、 保存profile文件,重启Ubuntu;
4、 输入echo $PATH, 会有/home/spring/NEON/android-ndk-r10/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86/bin
5、 编译test.cpp代码: arm-linux-androideabi-gcc -I/home/spring/NEON/android-ndk-r10/platforms/android-9/arch-arm/usr/include-c -Os –mfloat-abi=softfp –mfpu=neon test.cpp
ar –r libtest[android].a *.o 成功生成libtest[android].a静态库。- Ubuntu 32下Android NDK+NEON的配置过程及简单使用举例
- Ubuntu下CodeBlocks的安装、配置及静态库动态库的简单使用举例
- Ubuntu下CodeBlocks的安装、配置及静态库动态库的简单使用举例
- Ubuntu下Android NDK的安装及配置
- Ubuntu下makefile及gcc生成静态库动态库的简单使用举例
- Ubuntu下makefile及gcc生成静态库动态库的简单使用举例
- ubuntu下配置Android NDK
- NEON在Android中的使用举例
- Ubuntu下Android NDK配置及生成so文件步骤
- ubuntu下使用Android Studio安裝配置使用NDK
- ubuntu下jni的简单使用,不使用ndk工具
- ubuntu下jni的简单使用,使用ndk
- ubuntu下的NDK配置
- Ubuntu下的NDK配置
- Android NDK使用NEON优化,SIMD优化
- Android NDK开发之 NEON使用介绍
- Android NDK系列(1) --- 配置及简单使用
- eclipse 下android ndk开发的配置及简单功能实现
- 重温设计模式(三)——职责链模式(chain of responsibility)
- No.13 Xcode(5.1.x) 获取设备信息, 系统信息
- 关于ResultSet导入JTable中的问题
- iPhone如何打包成一个通用的静态库文件(模拟器和真机都可以用)?
- 程序员保持天天快乐的6个习惯
- Ubuntu 32下Android NDK+NEON的配置过程及简单使用举例
- Mac 将mysql路径加入环境变量
- linux 如何显示一个文件的某几行(中间几行)
- 条件编译
- 手机机怎么恢复视频文件
- 在android.app.Application中定义全局变量
- 关于Samba的一些说法
- python安装,setuptools安装,suds安装
- jsp和jspx引用tablib的区别