Ubuntu系统下实现Android工程调用独立编译的C++程序和GMP、PBC库

目的:   实现使用C++编写代码供Android工程调用。C++代码中可以使用STL库,也可以使用常用的由源码编译生成的库,如PBC。因为PBC是基于GMP库的,所以这里只记录了GMP和PBC库的编译安装方法,其它库的方法类似。 特点:   不使用集成的ndk-build功能,不需要在jni目录下写c文件和mk文件,而是从NDK中提取出交叉编译toolchain,这样可以在CodeBlocks等环境中建立独立工程进行C++代码的开发,然后编译生成动态库交给Android工程来加载。 准备工作:  一个搭建好的Android开发环境(SDK),以及:  android-ndk-r9d-linux-x86_64.tar.bz2  gmp-6.0.0a.tar.bz2  pbc-0.5.14.tar.gz  这些都可以去各自的官网下载到。 一、搭建Android交叉编译环境   解压ndk开发包,并提取其中的toolchain到指定目录: $ cd android-ndk-r9d/ $ build/tools/make-standalone-toolchain.sh –toolchain=arm-linux-androideabi-4.8 –platform=android-19 –system=linux-x86_64 –install-dir=$HOME/android-19-arm   参数说明:这里的toolchain参数指定的目标是基于ARM的Android设备,也可以根据需要改成基于x86或MIPS的Android设备,具体的参数名可以参见android-ndk-r9d/toolchains目录。参数platform设置为android-19,指生成的工具链是针对Android 4.4版本的,具体对应关系可以查看android-ndk-r9d/docs/STABLE-APIS.html文件。参数system指的是本机系统,即运行toolchain的环境。这里将提取出来的toolchain安装到了用户主目录下的android-19-arm文件夹,以后的工作都是在这个文件夹下进行,不再需要android-ndk-r9d目录了。   为toolchain添加环境变量,在文件/etc/profile的最后加上: # android toolchain export TOOLCHAIN_HOME=$HOME/android-19-arm export PATH=$TOOLCHAIN_HOME/bin:$PATH   然后最好注销一次,使环境变量生效(也可以用source /etc/profile,但好像只对本终端有效「注:elementary OS…