android库链接

时间:2010-08-23 21:50:50

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

如果我想做的话,我不会这样做:

我正在尝试使用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但是如果可能的话我不会这样做以及如何实现。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您需要添加一行表单:

LOCAL_SHARED_LIBRARIES = libstlport.so

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

或者你可以通过简单的方式完成它并使用NDK的Crystax构建,这使得STL正常工作。请参阅:http://www.crystax.net/android/ndk.php