2010-12-22 36 views
7

我正尝试使用PocketSphinxAndroidDemo项目为Android构建PocketSphinx。我放弃了使用Cygwin和Windows构建它的任务,并安装了一个Ubuntu VM。我正在取得进展,但我似乎被卡住了,我似乎无法弄清楚。它必须是简单的,我错过了。 NDK的建造提供了以下输出(裁剪):试图使用NDK为Android构建PocketSphinx的问题

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的家伙,所以我在这里的黑暗中。任何帮助将不胜感激。谢谢!

+1

检查此答案:http://stackoverflow.com/a/10124163/1318048 – 2012-04-12 13:07:28

回答

2

解决了我的问题。也许有人会觉得这个信息有用:)

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

+0

我对这个项目很新,你能指导我如何解决这个问题,通过重建所有静态库项目和一个更多的东西从哪里我会找到静态库。 – 2013-10-04 09:13:35

+0

@Ohh这个答案就像2岁,所以我不确定事情是否还是一样。从我记忆中(我早已从这个项目开始,哈哈),在PocketSphinx源代码中有一个构建脚本,它将从头开始重建整个库。 – 2013-10-06 23:21:18

2

修改什么JNI/Android.mk文件

更改行162:

LOCAL_STATIC_LIBRARIES := sphinxutil sphinxfe sphinxfeat sphinxlm pocketsphinx 

到:

LOCAL_STATIC_LIBRARIES := pocketsphinx sphinxlm sphinxfeat sphinxfe sphinxutil 

那将解决您的问题。