2

Android NDKを使用してサードパーティのライブラリをコンパイルするにはどうすればよいですか?JNI関数を共有libとして実装するラッパーをコンパイルしています。これは、別のサードパーティlib(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)

次に、2番目のmakefileは、共有libがリンクする静的libを構築する必要があります。このサブディレクトリmakefileを適切に含めるにはどうすればよいですか?これは正しい方法ですか?ボーナスとして:たとえば、.cで終わるすべてのファイルを取得するためのLOCAL_SRC_FILES変数のワイルドカードはありますか。

ありがとう!

4

2 に答える 2

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)

subdir-makefiles 関数を呼び出す前に CLEAR_VARS 関数を呼び出すのは、あまりエレガントではありませんでした;)

于 2010-06-10T11:59:43.850 に答える