尝试使用NDK为Android构建PocketSphinx的问题

时间:2010-12-22 02:15:17

标签: android android-ndk android-ndk-r5

我正在尝试使用PocketSphinxAndroidDemo项目为Android构建PocketSphinx。我放弃了使用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文件不在同一文件夹中。已在Android.mk文件中设置LOCAL_C_INCLUDES标志以包含所需的标题 -

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 个答案:

答案 0 :(得分:2)

解决了我的问题。也许有人会发现这些信息很有用:)

我所做的是完全重建所有静态库项目,然后是我的应用程序,使用“ndk-build -B”

答案 1 :(得分:2)

修改jni / Android.mk文件

更改第162行:

LOCAL_STATIC_LIBRARIES := sphinxutil sphinxfe sphinxfeat sphinxlm pocketsphinx

到:

LOCAL_STATIC_LIBRARIES := pocketsphinx sphinxlm sphinxfeat sphinxfe sphinxutil

这将解决您的问题。