NDK开发笔记之 mk文件
编译目标设置:
1.在jni中调用外部动态链接库.so文件的mk文件写法:
2.在jni中调用外部静态链接库 .a文件的mk文件写法:
编译目标设置:
include $(BUILD_STATIC_LIBRARY) # 编译成 静态链接库文件 (*.a) 供动态链接库或可执行文件调用,使用教少
include $(BUILD_SHARED_LIBRARY) # 编译成 动态链接库文件 (*.so) 通常使用的方式,在java曾调用
include $(BUILD_EXECUTABLE) # 编译成 可执行文件 (无后缀) 需在系统目录下才能运行,运行前 先 chmod 777 target
1.在jni中调用外部动态链接库.so文件的mk文件写法:
################################################################################
# !!!切记在 load libtemp2.so 文件之前记得 load libtemp1.so,否则会报错!!!
################################################################################
LOCAL_PATH:= $(call my-dir)
#the following is to make sure that the libtwolib-first.so can be packed to the apk file,
# which will be put in the data/data/package_name/lib folder.
include $(CLEAR_VARS)
LOCAL_MODULE := libtemp1
LOCAL_SRC_FILES := libs/libtemp1.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := temp2
LOCAL_SRC_FILES := temp.c
LOCAL_C_INCLUDES += $(LOCAL_PATH)/includes/ # 引用外部头文件
LOCAL_SHARED_LIBRARIES := libtemp # 引用外部.so文件
LOCAL_LDLIBS := -llog
include $(BUILD_SHARED_LIBRARY)
################################################################################
2.在jni中调用外部静态链接库 .a文件的mk文件写法:
################################################################################
# 参照 x264 的wrap。h264android
#
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := lib1
LOCAL_SRC_FILES := libx264/libx264.a
include $(PREBUILT_STATIC_LIBRARY) # prebuilt
include $(CLEAR_VARS)
LOCAL_MODULE := x264wrap
LOCAL_SRC_FILES := x264wrap.c
LOCAL_C_INCLUDES +=$(LOCAL_PATH)/libx264/
LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib
LOCAL_LDLIBS += -lgcc
LOCAL_LDLIBS += -llog #android logcat
LOCAL_STATIC_LIBRARIES := lib1 # 引用外部.a文件
include $(BUILD_SHARED_LIBRARY)
################################################################################