使用ndk编译生成so动态库

使用NDK编译.so库的好处在于,不需要写复杂的makefile,不需要配复杂的平台相关参数(我之前的错误可能是出在makefile中的一些平台相关参数没配好),因为google已经帮我们做好了。

我在这里给大家分享一下使用NDK编译将静态库.a和.c/.cpp编译成x86/.so动态库的方法:

编译环境:SshClient+编译服务器,使用mount命令将本地项目mount到编译服务器。

 

  1. 在eclipse工程目录下建立一个jni的文件夹。
  2. 在jni文件夹中建立Android.mk和Application.mk文件。

Android.mk文件:

Android提供的一种makefile文件,用来指定诸如编译生成so库名、引用的头文件目录、需要编译的.c/.cpp文件和.a静态库文件等。详见附件中的Android.mk。

 

Application.mk文件:

定义了项目的一些细节,比如APP_ABI := x86(编译X86平台库)、APP_PLATFORM := android-9(使用android-9以上的平台库)。

  1. 用cd命令移至jni目录,运行/mnt/500G/public/NDK/android-ndk-r7b/ndk-build命令,这时命令行中可能会出现编译错误,比如头文件找不到,函数找不到等等,细心找找就能改掉。
  2. 编译成功后,在工程目录下libs/x86中就会生成你想要的.so库。
posted @ 2012-02-29 13:18  wsjisji  阅读(15794)  评论(0编辑  收藏  举报