2010-08-23 70 views
1

我不会如果我想要做的是可能的:android库链接

我想用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*)' 
... 

看来,我有这样的错误STL因为...没有在NDK的支持。是对的吗 ?

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

但现在我不知道该怎么做才能完成建设libocr并在那里我必须把libstlport.so

我想,我到底会有两个文件在java中加载:libocr。所以和libstlport.so,但我不这样做,如果可能和如何实现。

感谢您的帮助!

回答

1

您需要添加一行表格:

LOCAL_SHARED_LIBRARIES = libstlport.so

,你应该libstlport.so添加到您的Application.mk APP_MODULES列表,如果你希望它被建成构建过程的一部分。

或者你可以用简单的方法做到这一点,并使用NDK的Crystax版本,这使得STL能够正常工作。参见:http://www.crystax.net/android/ndk.php