2010-08-23 68 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