Ссылка на библиотеку 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