android-ndk-r8d 独力编译工具链的制作和安装

android-ndk-r8d 独立编译工具链的制作和安装


本系统是CentOS6.3 x86_64,其它linux也可以。

以root登录,其它账户也可,只要有某些目录的读写权限即可。

1、官网下载解包android-ndk-r8d到某目录,终端进入该目录。

2、生成独立工具链

先确定目标android版本,和android api level有如下对应关系:

    android-3      -> Official Android 1.5 system images
    android-4      -> Official Android 1.6 system images
    android-5      -> Official Android 2.0 system images
    android-6      -> Official Android 2.0.1 system images
    android-7      -> Official Android 2.1 system images
    android-8      -> Official Android 2.2 system images
    android-9      -> Official Android 2.3 system images
    android-14     -> Official Android 4.0 system images

例如我选择android4.0平台就是android-14,也就是支持4.0的android api

本人出于实验性选择4.0,其实根据google统计2.1-2.3是固件使用最多的版本。

低版本android固件无法支持新版本的api。

其次确定安装的目录,比如我装到/usr/local/android-ndk-r8d

终端输入如下:

./build/tools/make-standalone-toolchain.sh --platform=android-14 --install-dir=/usr/local/android-ndk-r8d --toolchain=arm-linux-androideabi-4.7

这样在/usr/local/android-ndk-r8d已经生成好了。大概140M大小。

vi ~/.bash_profile

末尾添加如下并保存:

PATH=/usr/local/android-ndk-r8d/bin:$PATH
export PATH

运行arm-linux-androideabi-gcc -v查看,遇到下面问题:

error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory

安装libstdc++.so.6

yum install libstdc++.so.6

上边的错误信息消失了,剩下:

/lib/libz.so.1: no version information available

libz..so.1版本太低所致,去http://zlib.net/下载或zlib-1.2.7.tar.gz.(点击下载)

然后先安装32位的glibc再安装zlib:

yum install glibc-devel.i686

export CFLAGS=-m32

tar xvf ./zlib-1.2.7.tar.gz

cd zlib-1.2.7

./configure

make

make install

mv /lib/libz.so.1 /lib/libz.so.1.bak

ln -s /usr/local/lib/libz.so.1 /lib/libz.so.1

运行arm-linux-androideabi-gcc -v,警告消失。