gpt4 book ai didi

android-ndk - ndk-build 未能构建 PocketSphinxAndroidDemo 项目

转载 作者:行者123 更新时间:2023-12-02 00:35:19 25 4
gpt4 key购买 nike

我正在尝试使用“android-ndk-r5b”为 Android 构建 PocketSphinx。

我从“https://cmusphinx.svn.sourceforge.net/svnroot/cmusphinx/trunk/PocketSphinxAndroidDemo”单独下载了 PocketSphinxAndroidDemo 项目以及“pocketsphinx”和“sphinxbase”项目。

我在 Windows 7 上使用 Cygwin 运行“ndk-build”,问题是生成了所有静态库(.a 文件)但由于以下引用错误而无法创建 .so 文件:

$ /cygdrive/c/android-ndk-r5b/ndk-buildGdbserver      : [arm-linux-androideabi-4.4.3] libs/armeabi/gdbserverGdbsetup       : libs/armeabi/gdb.setupSharedLibrary  : libpocketsphinx_jni.soC:/eclipse/workspace/PocketSphinxAndroidDemo/obj/local/armeabi/libpocketsphinx.a(pocketsphinx.o): In function `ps_reinit':C:/eclipse/workspace/pocketsphinx/src/libpocketsphinx/pocketsphinx.c:228: undefined reference to `logmath_get_base'C:/eclipse/workspace/pocketsphinx/src/libpocketsphinx/pocketsphinx.c:231: undefined reference to `logmath_free'C:/eclipse/workspace/pocketsphinx/src/libpocketsphinx/pocketsphinx.c:232: undefined reference to `logmath_init'C:/eclipse/workspace/pocketsphinx/src/libpocketsphinx/pocketsphinx.c:293: undefined reference to `ptmr_init'C:/eclipse/workspace/PocketSphinxAndroidDemo/obj/local/armeabi/libpocketsphinx.a(pocketsphinx.o): In function `ps_free':C:/eclipse/workspace/pocketsphinx/src/libpocketsphinx/pocketsphinx.c:340: undefined reference to `logmath_free'C:/eclipse/workspace/PocketSphinxAndroidDemo/obj/local/armeabi/libpocketsphinx.a(pocketsphinx.o): In function `ps_update_lmset':C:/eclipse/workspace/pocketsphinx/src/libpocketsphinx/pocketsphinx.c:413: undefined reference to `ngram_model_free'C:/eclipse/workspace/PocketSphinxAndroidDemo/obj/local/armeabi/libpocketsphinx.a(pocketsphinx.o): In function `ps_add_word':C:/eclipse/workspace/pocketsphinx/src/libpocketsphinx/pocketsphinx.c:565: undefined reference to `ngram_model_add_word'

指定了所有的头文件路径。创建静态库没有问题,但链接静态库以创建共享库有问题。

这是我的“Android.mk”文件:

# Build the native component of the PocketSphinx library for Android.# You MUST change this to the absolute path of the directory containing# sphinxbase and pocketsphinx source code.#SPHINX_PATH := $(HOME)/Projects/Sphinx/trunkSPHINX_PATH := /cygdrive/c/eclipse/workspace# Copy this Android.mk along with pocketsphinx_wrap.c and the contents of the 'edu' folder# built by swig to the jni/ directory of your Android project.BASE_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_C_INCLUDES := $(SPHINX_PATH)/sphinxbase/include/android $(SPHINX_PATH)/sphinxbase/includeLOCAL_EXPORT_C_INCLUDES := $(SPHINX_PATH)/sphinxbase/include/android $(SPHINX_PATH)/sphinxbase/includeLOCAL_CFLAGS += -DHAVE_CONFIG_HLOCAL_CFLAGS += -DANDROID_NDKLOCAL_PATH := $(SPHINX_PATH)/sphinxbase/src/libsphinxbase/utilLOCAL_MODULE := sphinxutilLOCAL_SRC_FILES := \    bio.c \    bitvec.c \    case.c \    ckd_alloc.c \    cmd_ln.c \    dtoa.c \    err.c \    errno.c \    f2c_lite.c \    filename.c \    genrand.c \    glist.c \    hash_table.c \    heap.c \    huff_code.c \    info.c \    listelem_alloc.c \    logmath.c.arm \    matrix.c \    mmio.c \    pio.c \    profile.c \    sbthread.c \    strfuncs.c \    utf8.cinclude $(BUILD_STATIC_LIBRARY)include $(CLEAR_VARS)LOCAL_C_INCLUDES := $(SPHINX_PATH)/sphinxbase/include/android $(SPHINX_PATH)/sphinxbase/includeLOCAL_CFLAGS += -DHAVE_CONFIG_HLOCAL_CFLAGS += -DANDROID_NDKLOCAL_PATH := $(SPHINX_PATH)/sphinxbase/src/libsphinxbase/feLOCAL_MODULE := sphinxfeLOCAL_ARM_MODE := armLOCAL_SRC_FILES := \    fe_interface.c \    fe_sigproc.c \    fe_warp_affine.c \    fe_warp.c \    fe_warp_inverse_linear.c \    fe_warp_piecewise_linear.c \    fixlog.cinclude $(BUILD_STATIC_LIBRARY)include $(CLEAR_VARS)LOCAL_C_INCLUDES := $(SPHINX_PATH)/sphinxbase/include/android $(SPHINX_PATH)/sphinxbase/includeLOCAL_CFLAGS += -DHAVE_CONFIG_HLOCAL_CFLAGS += -DANDROID_NDKLOCAL_PATH := $(SPHINX_PATH)/sphinxbase/src/libsphinxbase/featLOCAL_MODULE := sphinxfeatLOCAL_SRC_FILES := \    agc.c \    cmn.c \    cmn_prior.c \    feat.c \    lda.cinclude $(BUILD_STATIC_LIBRARY)include $(CLEAR_VARS)LOCAL_C_INCLUDES := $(SPHINX_PATH)/sphinxbase/include/android $(SPHINX_PATH)/sphinxbase/includeLOCAL_CFLAGS += -DHAVE_CONFIG_HLOCAL_CFLAGS += -DANDROID_NDKLOCAL_PATH := $(SPHINX_PATH)/sphinxbase/src/libsphinxbase/lmLOCAL_MODULE := sphinxlmLOCAL_SRC_FILES := \    fsg_model.c \    jsgf.c \    jsgf_parser.c \    jsgf_scanner.c \    lm3g_model.c \    ngram_model_arpa.c \    ngram_model_dmp.c \    ngram_model_set.c \    ngram_model.cinclude $(BUILD_STATIC_LIBRARY)include $(CLEAR_VARS)LOCAL_C_INCLUDES := $(SPHINX_PATH)/sphinxbase/include/android $(SPHINX_PATH)/sphinxbase/include \                    $(SPHINX_PATH)/pocketsphinx/include $(SPHINX_PATH)/pocketsphinx/src/libpocketsphinx \                    $(SPHINX_PATH)/pocketsphinx/src/gst-plugin $(SPHINX_PATH)/sphinxbase/include/sphinxbaseLOCAL_CFLAGS += -DHAVE_CONFIG_HLOCAL_CFLAGS += -DANDROID_NDKLOCAL_PATH := $(SPHINX_PATH)/pocketsphinx/src/libpocketsphinxLOCAL_MODULE := pocketsphinxLOCAL_SRC_FILES := \    acmod.c     \    bin_mdef.c    \    blkarray_list.c   \    dict.c     \    dict2pid.c    \    fsg_history.c   \    fsg_lextree.c   \    fsg_search.c   \    hmm.c.arm     \    mdef.c     \    ms_gauden.c.arm    \    ms_mgau.c.arm    \    ms_senone.c.arm    \    ngram_search.c   \    ngram_search_fwdtree.c \    ngram_search_fwdflat.c \    phone_loop_search.c  \    pocketsphinx.c \    ps_lattice.c   \    ps_mllr.c    \    ptm_mgau.c.arm    \    s2_semi_mgau.c.arm   \    tmat.c     \    vector.cinclude $(BUILD_STATIC_LIBRARY)# Create the dynamic library wrapperinclude $(CLEAR_VARS)LOCAL_C_INCLUDES := $(SPHINX_PATH)/sphinxbase/include/android $(SPHINX_PATH)/sphinxbase/include \                    $(SPHINX_PATH)/pocketsphinx/include $(SPHINX_PATH)/pocketsphinx/src/libpocketsphinxLOCAL_CFLAGS += -DHAVE_CONFIG_HLOCAL_CFLAGS += -DANDROID_NDKLOCAL_PATH := $(BASE_PATH)LOCAL_MODULE := pocketsphinx_jniLOCAL_SRC_FILES := pocketsphinx_wrap.c# See http://code.google.com/p/android/issues/detail?id=9439PRIVATE_WHOLE_STATIC_LIBRARIES := \    $(call static-library-path,sphinxutil) \    $(call static-library-path,sphinxfe) \    $(call static-library-path,sphinxfeat) \    $(call static-library-path,sphinxlm) \    $(call static-library-path,pocketsphinx)LOCAL_STATIC_LIBRARIES := sphinxutil sphinxfe sphinxfeat sphinxlm pocketsphinxinclude $(BUILD_SHARED_LIBRARY)

============================================= ======================

提前感谢您的任何建议!国富

最佳答案

反转你的 LOCAL_STATIC_LIBRARIES 序列就可以了

关于android-ndk - ndk-build 未能构建 PocketSphinxAndroidDemo 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4893162/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com