前面一篇文章简单地介绍了Android ndk编译的一些命令行参数,一般情况下,我们都是在Android工程的jni目录下编译本地代码,或许用不到那些参数,但是如果你需要将一些第三方C/C++库,如ffmpeg、libjpeg等,编译为Android可使用的静态库/动态库,那么,你就得尝试在这些第三方库的源码目录中,配置Android的编译环境,使用NDK提供的交叉编译该工具来编译了。
本文暂时不讲述如何用NDK编译第三方开源代码库,而是先以简单的例子讲述如何在任意目录把自己写的C代码编译成Android可使用的静态库/动态库。
1. 准备环境
首先,你得安装了Android的NDK编译工具,假设你的NDK的根目录在 /opt/android/ndk .
当然,最好你能在环境变量里配置一下路径,否则使用ndk-build命令的时候,都得加上路径的前缀了。
修改 ~/.bashrc
export NDK_HOME=/opt/android/ndk
export PATH=$NDK_HOME:$PATH
然后执行:
$ source ~/.bashrc
2. 编写 .c 文件
假设你在 ~/math 目录下编写了一个 math.c 文件,内容如下:
#include
int add( int a , int b ) {
return a+b;
}
OK,后面我们就准备在 ~/math 目录下,将这个.c文件编译为Android可使用的静态库/动态库了。
3