1 将第三方静态库的头文件,.a文件拷贝到Android ndk的source目录里面:
这个目录里面,Android目录里面放了.a静态库,boost里面放了头文件,android.mk文件的内容:
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE:= boost_thread
LOCAL_SRC_FILES:= android/lib/libboost_thread.a
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)
include $(PREBUILT_STATIC_LIBRARY)
#如果还有其他的静态库:
include $(CLEAR_VARS)
LOCAL_MODULE:= boost_iostreams
LOCAL_SRC_FILES:= android/lib/libboost_iostreams.a
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)
include $(PREBUILT_STATIC_LIBRARY)
这样在其他工程要使用这个libboost_thread.a的做法是:
只需要在其他ndk工程的mk文件里面添加如下两句即可:
LOCAL_STATIC_LIBRARIES := boost_thread
$(call import-module,boost) #表示引用了source/boost目录里面的android.mk文件。
如果工程里面使用了多个.a文件,有的时候提示链接不到某个.a里面的函数,可能是LOCAL_STATIC_LIBRARIES := 里面列出来的.a模块的顺序不对。