在Android开发时,省出每次都需要编译的麻烦,我们经常需要编译各种静态库与动态库,之前,开发通信时,我们用到asio,下面来编译一个库:
建文件夹asio,再在该目录下建jni目录,把相关的代码Copy进来,并新建一个CPP文件,asio.cpp,内容如下:
#include "asio.hpp"
jni目录下新建Android.mk文件,内容如下:
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_ARM_MODE := arm LOCAL_MODULE := asio LOCAL_SRC_FILES := asio.cpp LOCAL_C_INCLUDES := $(LOCAL_PATH) \#include $(BUILD_SHARED_LIBRARY) \#这是动态库 include $(BUILD_STATIC_LIBRARY)\#这是静态库
jni目录下新建Application.mk文件,内容:
APP_STL := gnustl_static APP_OPTIM := release APP_CFLAGS := -DASIO_STANDALONE=1 -fexceptions -DASIO_SEPARATE_COMPILATION -DASIO_HEADER_ONLY APP_CPPFLAGS := -frtti -fexceptions -std=c++11 -fsigned-char APP_ABI = all
打开命令行,切换到asio目录,运行NDK下的命令ndk-build,成功会生成libs目录