【问题标题】:android library linkingandroid库链接
【发布时间】:2011-04-02 21:25:52
【问题描述】:

如果我想要做的事情是可能的,我不会:

我正在尝试使用 ndk 构建 tesseract 项目 (libocr)。 编译没问题,但是链接出错了……

有很多这样的错误:

Android NDK: WARNING: Unsupported source file extensions in /home/jpprade/dev/tesseract3/jni/Android.mk for module ocr    
Android NDK:   ccstruct/detlinefit ccmain/tessembedded textord/strokewidth    
SharedLibrary  : libocr.so
/home/jpprade/dev/tesseract3/obj/local/armeabi/objs/ocr/ccutil/basedir.o: In function `getpath(char const*, STRING&)':
/home/jpprade/dev/tesseract3/jni/ccutil/basedir.cpp:59: undefined reference to `STRING::operator=(char const*)'
...

似乎我有这个错误,因为 ndk 不支持 stl。是这样吗?

我认为我可以通过使用 STLport 来解决这个问题。 于是我编译了它,得到了一个文件 libstlport.so。

但现在我不知道如何完成构建 libocr 以及我必须将 libstlport.so 放在哪里

我想最后我会在 java 中加载两个文件:libocr.so 和 libstlport.so,但如果可能以及如何实现,我不会。

感谢您的帮助!

【问题讨论】:

    标签: android android-ndk android-ndk-r4


    【解决方案1】:

    你需要添加一行表格:

    LOCAL_SHARED_LIBRARIES=libstlport.so

    如果您希望将 libstlport.so 作为同一构建过程的一部分进行构建,则应将 libstlport.so 添加到 Application.mk APP_MODULES 列表中。

    或者,您可以使用简单的方法并使用 NDK 的 Crystax 构建,这可以使 STL 正常工作。见:http://www.crystax.net/android/ndk.php

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-29
      • 1970-01-01
      • 1970-01-01
      • 2016-04-14
      • 2017-02-05
      • 2015-04-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多