1

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

我正在尝试使用 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 但如果可能以及如何实现它,我不会。

谢谢你的帮助 !

4

1 回答 1

1

您需要添加一行表格:

LOCAL_SHARED_LIBRARIES=libstlport.so

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

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

于 2010-09-25T06:06:54.933 回答