Ссылка на библиотеку Android

Я не знаю, возможно ли то, что я пытаюсь сделать:

Я пытаюсь собрать проект tesseract (libocr) с помощью ndk. Компиляция в порядке, но связывание неверно...

с большим количеством ошибок, как это:

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.so и libstlport.so, но я не знаю, возможно ли это и как этого добиться.

Спасибо за любую помощь!

1 ответ

Вам необходимо добавить строку вида:

LOCAL_SHARED_LIBRARIES = libstlport.so

И вы должны добавить libstlport.so в ваш список Application.mk APP_MODULES, если вы хотите, чтобы он был собран как часть того же процесса сборки.

ИЛИ вы можете сделать это простым способом и использовать сборку Crystax NDK, которая заставляет STL работать правильно. Смотрите: http://www.crystax.net/android/ndk.php

Другие вопросы по тегам