Niedźwiedź ze mną - to długi opis, ale chciałem uwzględnić wszystkie szczegóły. Próbuję używać Androida NDK i JNI do budowania aplikacji OpenCV na Androida.Kompilowanie Androida JNI dla OpenCV na Mac OSX
Obserwuję ten poradnik, aby wszystko zainstalowane: http://www.stanford.edu/class/ee368/Android/Tutorial-2-OpenCV-for-Android-Setup-Macintosh-API8.pdf
Poniżej zainstalowane po prostu grzywny:
/usr/bin/g++
/usr/local/bin/swig
/usr/bin/cmake
/usr/bin/make
/Developer/pcre-8.32/
zawartość mojego pliku .bashrc:
export NDK=/Users/Me/Code/Android/android-ndk-r4-crystax
export SDK=/Users/Me/Code/Android/adt-bundle-mac-x86_64-20130219/
export OPCV=/Users/Me/Code/OpenCV/opencv
export PATH=$NDK:$SDK/tools:$SDK/platform-tools:$PATH
export NDK_ROOT=$NDK
Making OpenCV biblioteki poszły dobrze.
Ze względu na skargi w użyciu make
, musiałem zrobić mały edit w /Users/Me/Code/OpenCV/opencv/android/android-jni/local.env.mk
który wyglądał tak:
#ANDROID_NDK_ROOT=$(HOME)/android-ndk-r4-crystax
ANDROID_NDK_ROOT=/Users/Me/Code/Android/android-ndk-r4-crystax
Następnie po próbuje ponownie do make
w android-JNI, katalog, katastrofa:
/Users/Me/Code/Android/android-ndk-r4-crystax/ndk-build OPENCV_CONFIG=../build/android-opencv.mk \
PROJECT_PATH= ARM_TARGETS="armeabi armeabi-v7a" V=
Gdbserver : [arm-eabi-4.4.0] /Users/Me/Code/OpenCV/opencv/android/android-jni/libs/armeabi/gdbserver
Gdbsetup : /Users/Me/Code/OpenCV/opencv/android/android-jni/libs/armeabi/gdb.setup
Gdbsetup : + source directory /Users/Me/Code/OpenCV/opencv/android/android-jni/jni
Gdbserver : [arm-eabi-4.4.0] /Users/Me/Code/OpenCV/opencv/android/android-jni/libs/armeabi-v7a/gdbserver
Gdbsetup : /Users/Me/Code/OpenCV/opencv/android/android-jni/libs/armeabi-v7a/gdb.setup
Gdbsetup : + source directory /Users/Me/Code/OpenCV/opencv/android/android-jni/jni
SharedLibrary : libandroid-opencv.so
/Users/Me/Code/Android/android-ndk-r4-crystax/build/prebuilt/darwin-x86/arm-eabi-4.4.0/bin/../lib/gcc/arm-eabi/4.4.0/../../../../arm-eabi/bin/ld: cannot find -lopencv_calib3d
collect2: ld returned 1 exit status
make[1]: *** [/Users/Me/Code/OpenCV/opencv/android/android-jni/obj/local/armeabi/libandroid-opencv.so] Error 1
make: *** [libs/armeabi-v7a/libandroid-opencv.so] Error 2
Pomyślałem, że być może był to błąd pkg-config, ale wygląda na to, że został skonfigurowany, chociaż w mojej starej instalacji OpenCV. Poniżej jest wyjście pkg-config --cflags --libs opencv
:
-I/usr/include/opencv /usr/lib/libopencv_calib3d.dylib /usr/lib/libopencv_contrib.dylib /usr/lib/libopencv_core.dylib /usr/lib/libopencv_features2d.dylib /usr/lib/libopencv_flann.dylib /usr/lib/libopencv_gpu.dylib /usr/lib/libopencv_highgui.dylib /usr/lib/libopencv_imgproc.dylib /usr/lib/libopencv_legacy.dylib /usr/lib/libopencv_ml.dylib /usr/lib/libopencv_nonfree.dylib /usr/lib/libopencv_objdetect.dylib /usr/lib/libopencv_photo.dylib /usr/lib/libopencv_stitching.dylib /usr/lib/libopencv_ts.dylib /usr/lib/libopencv_video.dylib /usr/lib/libopencv_videostab.dylib
instalację zbudowany przez tego konkretnego tutoriala został umieszczony plik opencv.pc
w tej lokalizacji:
/Users/Me/Code/OpenCV/opencv/build/unix-install
lecz z dołu i ponownie próbuje make
nie naprawić problem:
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/Users/Me/Code/OpenCV/opencv/build/unix-install
Nie mogę określić, co jest nie tak. Walczę z tym problemem przez mniej więcej miesiąc, a na koniec potrzebuję opinii zewnętrznych. Jakieś pomysły?
Kopalnia jest tylko ciekawość. Dlaczego używasz android-ndk-r4-crystax? Ma co najmniej dwa lata? Czy możesz spróbować skompilować z nowszym ndk? – Blackbelt