Связывание FFTW в приложение Android NDK - PullRequest
5 голосов
/ 29 августа 2011

В настоящее время я пишу заявку на классификацию жанров в качестве моего последнего проекта в области компьютерной инженерии.Первоначально я написал код извлечения функций (реализующий FFTW) на C, и теперь мне нужно реализовать его на Android через NDK.

Это мой первый проект NDK, поэтому я все еще изучаю, носкомпилировали библиотеку FFTW3 для Android в соответствии с этим руководством .Я не делал последний шаг, потому что не думал, что это правильно для того, что мне нужно.

Мой вопрос: как мне после этапа компиляции использовать библиотеку в основном приложении NDK, котороепризывает это?Я делаю все нормально в Application.mk только с LOCAL_STATIC_LIBRARIES, установленным на libfftw3.a, который я только что скомпилировал?И тогда мне не нужны никакие флаги компоновщика -lfftw3, как обычно, верно?

1 Ответ

4 голосов
/ 04 февраля 2012

Вы можете использовать встроенную библиотеку FFTW (независимо от того, как вы ее построили).

Или вы можете собрать FFTW в Android.mk make-файле со всем проектом.

Android.mk содержание будет:

# 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)

Я написал path_to_fftw_sources/$(LOCAL_MODULE).mk для сборки статической библиотеки fftw и path_to_your_project/$(LOCAL_MODULE).mk для сборки вашей общей библиотеки. Часто лучше поместить LOCAL_SRC_FILES и LOCAL_C_INCLUDES в отдельный файл .mk.

Подробнее о файле Android.mk можно прочитать в документе docs/ANDROID-MK.html в вашем дистрибутиве NDK.

...