【问题标题】:Problems trying to build PocketSphinx for Android using NDK尝试使用 NDK 为 Android 构建 PocketSphinx 时出现问题
【发布时间】:2011-05-29 04:25:36
【问题描述】:

我正在尝试使用 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 文件不在同一个文件夹中。 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 人,所以我在这里有点摸不着头脑。任何帮助将不胜感激。谢谢!

【问题讨论】:

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


【解决方案1】:

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

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

【讨论】:

  • 我是这个项目的新手,请指导我如何通过重建所有静态库项目以及从哪里找到静态库来解决这个问题。
  • @Ohh 这个答案已经 2 岁了,所以我不确定事情是否仍然相同。据我所知(我早就离开了这个项目,哈哈)在 PocketSphinx 源代码中有一个构建脚本,可以从头开始重建整个库。
【解决方案2】:

修改jni/Android.mk文件

更改第 162 行:

LOCAL_STATIC_LIBRARIES := sphinxutil sphinxfe sphinxfeat sphinxlm pocketsphinx

到:

LOCAL_STATIC_LIBRARIES := pocketsphinx sphinxlm sphinxfeat sphinxfe sphinxutil

这将解决您的问题。

【讨论】:

    猜你喜欢
    • 2011-05-29
    • 2011-06-01
    • 2011-07-07
    • 1970-01-01
    • 1970-01-01
    • 2011-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多