Eclipse
android sdk r24
android-ndk-r10e
Win8.1 x64
nkd的配置主要是两个文件:Android.mk 和 Application.mk
# 获取当前文件LOCAL_PATH := $(call my-dir)# 加载第三方静态库include $(CLEAR_VARS)LOCAL_MODULE := cfitsioLOCAL_SRC_FILES := libs/$(TARGET_ARCH_ABI) /libcfitsio.ainclude $(PREBUILT_STATIC_LIBRARY)include $(CLEAR_VARS)# 模块名LOCAL_MODULE := ColorspaceServer # 头文件路径LOCAL_C_INCLUDES := \ $(LOCAL_PATH)/third/cfitsio \ $(LOCAL_PATH) \ $(LOCAL_PATH)/platform \ $(LOCAL_PATH)/network # 源文件路径LOCAL_SRC_FILES := \ colorspace_res_BrightNdk.cpp \ platform\csPlatform.cpp \ network\csPtcl.cpp \ network\csClient.cpp# 链接系统库LOCAL_LDLIBS := -landroid -llog -lz# 链接第三方库LOCAL_STATIC_LIBRARIES := cfitsio# 增加对 异常 和 rtti 的支持LOCAL_CPPFLAGS := -fexceptions -frtti# 采用 c++ 11 标准#LOCAL_CPPFLAGS += -std=c++1y -D__cplusplus=201300L# 采用 c++ 14 标准LOCAL_CPPFLAGS += -std=c++11 -D__cplusplus=201103L# 生成动态链接库include $(BUILD_SHARED_LIBRARY)# 修改path路径#$(call import-add-path, $(LOCAL_PATH))# 编译path路径下的模块 #$(call import-module, third/cfitsio)
这是我的Application.mk文件:APP_ABI := x86APP_STL := gnustl_staticNDK_TOOLCHAIN_VERSION := 4.9APP_OPTIM := debug
下面开始逐个的说明:
1、支持标准:在 Android.mk 中加入① c++ 11 标准:LOCAL_CPPFLAGS += -std=c++11② c++ 14标准:LOCAL_CPPFLAGS += -std=c++1y如下图所示加与不加的效果:
2、支持STL:在Application.mk中加入:APP_STL := gnustl_static
3、支持线程库:当增加c++11或者c++14标准后,ndk就已经支持了thread class,但是由于eclipse存在bug,导致 __cplusplus 宏被定义了,但是没有赋值,从而导致eclipse 上会出现错误,解决的方法就是追加上对宏的赋值在Android.mk中增加:① c++ 11 标准:LOCAL_CPPFLAGS += -D__cplusplus=201103L② c++ 14 标准:LOCAL_CPPFLAGS += -D__cplusplus=201300L在代码中增加头文件:#include
4、支持异常处理在Android.mk中增加:LOCAL_CPPFLAGS := -fexceptions 在代码中增加头文件:#include
5、支持运行时类型信息(检查)在Android.mk中增加:LOCAL_CPPFLAGS := -frtti 在代码中增加头文件:#include
方便他人亦是方便自己,如果觉得还行就点下下边的投票吧,这样可以帮助其他人更快的找到解决问题的方法;有疑问的也可留言哦, 谢谢!