Jak se staví knihovny třetích stran s Android NDK

hlasů
1

Jak mohu sestavit knihoven třetích stran s Android NDK? Jsem sestavování obal, který implementuje funkce JNI jako sdílené lib, který je závislý na jiném lib 3rd Party (HTK). Nevím, jak nastavit makefile vědět. Vkládá nefunguje:

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)

Druhý Makefile by pak měl vytvořit statickou lib, který má sdílenou lib odkazy. Jak mohu zahrnout tuto subdir Makefile správně? Je to správný způsob, jak to udělat? A jako bonus: Existují zástupné znaky pro proměnnou LOCAL_SRC_FILES vzít všechny soubory s příponou .c například.

Dík!

Položena 10/06/2010 v 12:08
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
10

Našel jsem řešení:

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)

Volání funkce CLEAR_VARS před voláním funkce Subdir-makefiles nebyl zrovna elegantní)

Odpovězeno 10/06/2010 v 12:59
zdroj uživatelem

hlasů
0

V documentation.html ve složce Android NDK,

se podívat na funkci makro „my-dir“

Vrací cesta z posledního zahrnuty Makefile, která obvykle je aktuální Android.mk je adresář. To je užitečné definovat LOCAL_PATH na začátku svého Android.mk jako u:

 LOCAL_PATH := $(call my-dir)

a makro funkce "all-Subdir-makefiles"

Vrátí seznam Android.mk umístěné ve všech podadresářů aktuálního ‚my-r‘ cesty.

Odpovězeno 27/09/2012 v 09:40
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more