2010-12-22 55 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 

那將解決您的問題。