Проблемы при попытке собрать PocketSphinx для Android с помощью NDK
Я пытаюсь собрать PocketSphinx для Android с помощью проекта PocketSphinxAndroidDemo. Я отказался от своего квеста, чтобы собрать его с помощью Cygwin и Windows, и установил Ubuntu VM. Я делаю успехи, но я, кажется, застрял, и я не могу понять это. Это должно быть что-то простое, что я скучаю. Ndk-build дает следующий вывод (обрезается):
Compile thumb : pocketsphinx_jni <= pocketsphinx_wrap.c
/home/user/development/PocketSphinxAndroidDemo/jni/pocketsphinx_wrap.c:760:26: error: pocketsphinx.h: No such file or directory
/home/user/development/PocketSphinxAndroidDemo/jni/pocketsphinx_wrap.c:761:28: error: sphinxbase/err.h: No such file or directory
Заголовочные файлы (очевидно) не находятся в той же папке, что и файлы JNI. Флаг LOCAL_C_INCLUDES был установлен в файле Android.mk для включения необходимых заголовков -
include $(CLEAR_VARS)
LOCAL_C_INCLUDES := $(SPHINX_PATH)/sphinxbase/include/android \
$(SPHINX_PATH)/sphinxbase/include/sphinxbase \
$(SPHINX_PATH)/sphinxbase/include \
$(SPHINX_PATH)/pocketsphinx/include
Я должен отметить, что моя переменная SPHINX_PATH выглядит так, и это правильно -
SPHINX_PATH := ~/development
Если я копирую файлы заголовков в папку /jni/, я получаю дальше, но потом компилятор начинает кричать на меня, что файлы заголовков отсутствуют в других местах. Конечно, я упускаю что-то простое. Нет ли где-нибудь, где я могу установить флажок "Искать в этих местах файлы заголовков, прежде чем взорвать"?
Я не C/C++ или парень из Linux, поэтому я как бы в неведении. Любая помощь будет принята с благодарностью. Спасибо!
2 ответа
Решил мою проблему. Может быть, кто-то найдет эту информацию полезной:)
Я полностью перестроил все проекты статической библиотеки, а затем и мое приложение, используя "ndk-build -B"
Изменить файл jni/Android.mk
Изменить строку 162:
LOCAL_STATIC_LIBRARIES := sphinxutil sphinxfe sphinxfeat sphinxlm pocketsphinx
к:
LOCAL_STATIC_LIBRARIES := pocketsphinx sphinxlm sphinxfeat sphinxfe sphinxutil
Это решит вашу проблему.