Я не хочу, чтобы то, что я пытаюсь сделать, возможно:
Я пытаюсь построить проект 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, но я не могу, если это возможно, и как добиться этого.
Спасибо за любую помощь!
Вам нужно добавить строку формы:
LOCAL_SHARED_LIBRARIES = libstlport.so
И вы должны добавить libstlport.so в свой список Application.mk APP_MODULES, если хотите, чтобы он был построен как часть одного и того же процесса сборки.
ИЛИ вы можете сделать это простым способом и использовать сборку Crystax для NDK, что делает STL работать правильно. См.: http://www.crystax.net/android/ndk.php