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的配置过程及简单使用举例的更多相关文章

  1. Ubuntu 14.04 下 android studio 安装 和 配置【转】

    本文转载自:http://blog.csdn.net/xueshanfeihu0/article/details/52979717 Ubuntu 14.04 下 android studio 安装 和 ...

  2. 下面就介绍下Android NDK的入门学习过程(转)

    为何要用到NDK? 概括来说主要分为以下几种情况: 1. 代码的保护,由于apk的java层代码很容易被反编译,而C/C++库反汇难度较大. 2. 在NDK中调用第三方C/C++库,因为大部分的开源库 ...

  3. Android NDK r9的配置与使用

    Android NDK 配置: 网上有很多教程,但大部分是旧版本的内容,最新版本的已经改变,为了让大家少走弯路,在这里针对r9的配置进行记录分享. 要玩NDK,你或多或少要用到以下一些东西,所以先做一 ...

  4. Android NDK 安装与配置

    本文主内容: 1.  Android NDK 安装 2.  安装Cygwin与使用NDK编译 3.  在Eclipse中集成C/C++开发环境CDT 4.  安装Sequoyah插件 5.  JNI编 ...

  5. Linux(Ubuntu 16) 下Java开发环境的配置(二)------Tomcat的配置及常见问题

    前言 相比于java JDK的配置,Tomcat的配置简单的多,简直就相当于直接运行了,本文以Tomcat8.0为例进行配置   1.Tomcat的下载 地址:https://tomcat.apach ...

  6. 64位ubuntu下Android开发环境的配置

    本文介绍如何在64位ubuntu上搭建android的开发环境. 系统:ubuntu12.04LTS 使用的是ADT Bundle for Linux和jdk1.7(open jdk也可) 一共分为3 ...

  7. 【转】Windows环境下Android NDK环境搭建

    原文网址:http://www.metsky.com/archives/525.html 前面介绍Windows下Android 开发环境配置,主要是面向JAVA开发环境,对只做APK上层应用开发人员 ...

  8. Windows环境下Android NDK环境搭建

    前面介绍Windows下Android 开发环境配置,主要是面向JAVA开发环境,对只做APK上层应用开发人员来讲,基本够用了,由于Linux系统的权限限制和Android封装架构限制,很多涉及底层设 ...

  9. Ubuntu环境下Anaconda安装TensorFlow并配置Jupyter远程访问

    本文主要讲解在Ubuntu系统中,如何在Anaconda下安装TensorFlow以及配置Jupyter Notebook远程访问的过程. 在官方文档中提到,TensorFlow的安装主要有以下五种形 ...

随机推荐

  1. 《Head First 设计模式》学习笔记——状态模式

    在软件开发过程中.应用程序可能会依据不同的情况作出不同的处理. 最直接的解决方式是将这些全部可能发生的情况全都考虑到.然后使用if... ellse语句来做状态推断来进行不同情况的处理. 可是对复杂状 ...

  2. HDU4549 M斐波那契数

    M斐波那契数列 题目分析: M斐波那契数列F[n]是一种整数数列,它的定义例如以下: F[0] = a F[1] = b F[n] = F[n-1] * F[n-2] ( n > 1 ) 如今给 ...

  3. Android SDK Manager安装报错

    安装出错了,上网百度一大堆说法,又说版本兼容问题的,有说http换https的,我这个菜鸟真搞不明白,自己捣腾一下午总算弄上去了! 问题: 安装完Eclipse和ADT却无法更新SDK. 启动Andr ...

  4. Mysql 执行计划分析

    zjdev 正常访问: mysql> explain SELECT temp.* , -> (SELECT COUNT(sn) FROM AssignClientManager WHERE ...

  5. 基于visual Studio2013解决面试题之0209最大堆排序

     题目

  6. Android应用中使用百度地图API并加入标注(一)

    网上一些资料这样的的内容已经过时了,这里是最新的内容,假设哪里不正确,请吐槽... 1)下载百度地图移动版API(Android)开发包       要在Android应用中使用百度地图API,就须要 ...

  7. MFC 在对话框显示图片的多种方法

      我们先从简单的开始吧.先分一个类: (一) 非动态显示图片(即图片先通过资源管理器载入,有一个固定ID) (二) 动态载入图片(即只需要在程序中指定图片的路径即可载入) 为方便说明,我们已经建好一 ...

  8. Lucene.Net 2.3.1开发介绍 —— 二、分词(四)

    原文:Lucene.Net 2.3.1开发介绍 -- 二.分词(四) 2.1.2 可以使用的内置分词 简单的分词方式并不能满足需求.前文说过Lucene.Net内置分词中StandardAnalyze ...

  9. vs2013 IntelliSense: &quot;const char *&quot; 类型的实參与 &quot;LPCWSTR&quot; 类型的形參不兼容

    错误例如以下: 解决方法: project字符集选择多字符

  10. 框架学习之道:PE框架简介

    1.PE框架开发新功能所需的部分 2.PE框架工作流程(重要) 首先根据<transcation>中的id号,找到模板(template),然后再根据模板找到责任链(chain),一旦确认 ...