2011-08-29 13 views
5

Attualmente sto scrivendo una domanda di classificazione di genere come progetto del mio ultimo anno in Ingegneria Informatica. Inizialmente ho scritto il codice di estrazione delle caratteristiche (implementando FFTW) in C e ora ho bisogno di implementarlo su Android tramite NDK.Collegamento di FFTW a un'applicazione Android NDK

Questo è il mio primo progetto NDK quindi sto ancora ottenendo il blocco delle cose, ma ho compilato la libreria FFTW3 per Android in base a this guide. Non ho fatto l'ultimo passo perché non pensavo che fosse giusto per quello di cui avevo bisogno.

La mia domanda è: come posso, dopo la fase di compilazione, utilizzare la libreria nell'applicazione NDK principale che la chiama? Faccio tutto normalmente in Application.mk solo con LOCAL_STATIC_LIBRARIES impostato su libfftw3.a che ho appena compilato? E quindi non ho bisogno di avere alcun flag di link -lfftw3 come se fosse normale?

risposta

4

È possibile utilizzare la libreria FFTW prebuit (indipendentemente dalla modalità di creazione).

Oppure è possibile creare FFTW nel makefile Android.mk con l'intero progetto.

contenuti

Android.mk sarà:

# Prebuilt FFTW library 
include $(CLEAR_VARS) 
LOCAL_MODULE := fftw 
include $(PREBUILT_STATIC_LIBRARY) 

# or 

# Build FFTW library 
include $(CLEAR_VARS) 
LOCAL_MODULE := fftw 
# TODO put your static libs build flags 
include path_to_fftw_sources/$(LOCAL_MODULE).mk 
include $(BUILD_STATIC_LIBRARY) 

include $(CLEAR_VARS) 
LOCAL_MODULE := YourProject 
# TODO put your shared lib build flags 
include path_to_your_project/$(LOCAL_MODULE).mk 
LOCAL_STATIC_LIBRARIES += fftw 
include $(BUILD_SHARED_LIBRARY) 

ho scritto path_to_fftw_sources/$(LOCAL_MODULE).mk per la costruzione di biblioteca fftw statica e path_to_your_project/$(LOCAL_MODULE).mk per costruire la vostra libreria condivisa. È spesso preferibile inserire LOCAL_SRC_FILES e LOCAL_C_INCLUDES nel file .mk separato.

È possibile leggere ulteriori informazioni sul file Android.mk nel documento docs/ANDROID-MK.html nella distribuzione NDK.