1

私がやろうとしていることが可能であれば、私はしません:

ndk で tesseract プロジェクト (libocr) をビルドしようとしています。コンパイルはOKですが、リンクが間違っています...

このような多くのエラーがあります:

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 にロードするファイルが 2 つあると思います: 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 に答える