如何使用Android NDK构建第三方库

use*_*362 2 android-ndk

如何使用android NDK编译第三方库?我正在编译一个包装器,它将JNI函数实现为共享库,这取决于另一个第三方库(HTK).我不知道如何设置makefile.以下不起作用:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

include HTKLib/Android.mk

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

LOCAL_MODULE    := gaitfuncs
LOCAL_SRC_FILES := gaitfuncs.c
%LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog

include $(BUILD_SHARED_LIBRARY)
Run Code Online (Sandbox Code Playgroud)

然后第二个makefile应该构建一个我的共享库链接到的静态库.如何正确包含这个subdir makefile?这是正确的做法吗?作为奖励:是否有LOCAL_SRC_FILES变量的通配符以获取以.c结尾的所有文件.

谢谢!

use*_*362 10

我找到了解决方案:

JNIPATH := $(call my-dir)
LOCAL_PATH := $(JNIPATH)

include $(call all-subdir-makefiles)

LOCAL_PATH := $(JNIPATH)
include $(CLEAR_VARS)

LOCAL_MODULE    := gaitfuncs
LOCAL_SRC_FILES := gaitfuncs.c
LOCAL_STATIC_LIBRARIES := htk

include $(BUILD_SHARED_LIBRARY)
Run Code Online (Sandbox Code Playgroud)

在调用subdir-makefiles函数之前调用CLEAR_VARS函数并不是很优雅;)