2010-08-23 7 views
1

Je ne sais pas si ce que je suis en train de faire est possible:bibliothèque android reliant

Je suis en train de construire le projet de Tesseract (de libocr) avec le NDK. La compilation est ok, mais la liaison est mauvaise ...

avec beaucoup d'erreur comme ceci:

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

Il semble que j'ai cette erreur est becaus stl pas pris en charge dans le NDK. Est-ce correct ?

Je pensais pouvoir résoudre ce problème en utilisant STLport. Donc je l'ai compilé et j'ai obtenu un fichier libstlport.so.

Mais maintenant, je ne sais pas quoi faire pour terminer la construction libocr et où je dois mettre le libstlport.so

Je suppose qu'en fin de compte, je vais avoir deux fichiers à charger en java: libocr. Donc et libstlport.so mais je ne sais pas si c'est possible et comment faire cela.

Merci pour toute aide!

Répondre

1

Vous devez ajouter une ligne de la forme:

LOCAL_SHARED_LIBRARIES = libstlport.so

et vous devez ajouter à votre liste libstlport.so Application.mk APP_MODULES, si vous voulez qu'il soit construit comme partie du même processus de construction. OU vous pouvez le faire en toute simplicité et utiliser la version Crystax du NDK, qui fait fonctionner STL correctement. Voir: http://www.crystax.net/android/ndk.php