2013-05-09 16 views
5

私と一緒にいてください - これは長い説明ですが、すべての詳細を含めることにしました。私はOpenCV Androidアプリを構築するためにアンドロイドNDKとJNIを使​​用しようとしています。Mac OSX上でOpenCV用のAndroid JNIをコンパイル

私はすべてがインストールされて得るために、このチュートリアルで、次のよ

http://www.stanford.edu/class/ee368/Android/Tutorial-2-OpenCV-for-Android-Setup-Macintosh-API8.pdf

に以下の罰金インストール:私の.bashrcファイルの

/usr/bin/g++ 
/usr/local/bin/swig 
/usr/bin/cmake 
/usr/bin/make 
/Developer/pcre-8.32/ 

内容:

OpenCVのを作る
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 

を図書館はうまくいった。

が原因makeを使用する際の苦情に、私はそうのように見えた/Users/Me/Code/OpenCV/opencv/android/android-jni/local.env.mkに小さな編集をしなければならなかった:

#ANDROID_NDK_ROOT=$(HOME)/android-ndk-r4-crystax 
ANDROID_NDK_ROOT=/Users/Me/Code/Android/android-ndk-r4-crystax 

次にアンドロイド-JNI、ディレクトリにmakeに再びしようとすると、災害が襲った:

/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 

おそらく、これはpkg-configエラーだと思っていましたが、OpenCVの以前のインストールでも設定されているようです。以下は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 

この場所にopencv.pcファイルを置いているこの特定のチュートリアルで構築されたインストール:

/Users/Me/Code/OpenCV/opencv/build/unix-install 

なく、以下の実行と修正されません再びmakeをしよう問題:

export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/Users/Me/Code/OpenCV/opencv/build/unix-install 

何が間違っているかわかりません。私は約1ヶ月間この問題を争っていたし、やっと外の意見が必要でした。何か案は?

+0

鉱山が唯一の好奇心です。なぜあなたはandroid-ndk-r4-crystaxを使用していますか?それは少なくとも2歳ですか?あなたは新しいndkでコンパイルしようとすることができますか? – Blackbelt

答えて

2

で公式OpenCV4Androidのチュートリアルを試してみてくださいエラーメッセージ

が-lopencv_calib3d collect2はを見つけることができないと言う:ldは

1つの終了ステータスが返さそれは、リンカがopencv_calib3dライブラリを見つけることができないことを意味します。名前はlibopencv_calib3d.aまたはlibopencv_calib3d.soです。ですから、そのうちの1つを見つけて、このファイルへのパスをLD_LIBRARY_PATH env変数に追加する必要があります。

のフォルダ/ユーザ/ ME /コード/ OpenCVの/ OpenCVの/ libには、その後libopencv_calib3d.so含まれているとしましょう場合、私は意味あなたが作る前に、次のようなものを実行する必要があります。

export LD_LIBRARY_PATH=/Users/Me/Code/OpenCV/opencv/lib:$LD_LIBRARY_PATH 
関連する問題