如果我想做的话,我不会这样做:
我正在尝试使用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但是如果可能的话我不会这样做以及如何实现。
感谢您的帮助!
答案 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