하단에 추가 정보를 확인하십시오! 첫 번째 문제는 Linux에서 해결되었지만 Windows 및 Cygwin에서는 아직 해결되지 않았지만 새로운 문제가 있습니다. 아래를 봐주세요!Android에서 OpenCV 컴파일 NDK
현재 내 앱에서 사용할 수 있도록 Android NDK 용 OpenCV를 컴파일하려고합니다. 이를 위해 나는이 가이드에 따라 시도 :
http://www.stanford.edu/~zxwang/android_opencv.html
을하지만 NDK 빌드로 다운로드 물건을 컴파일 할 때이 오류가 얻을 :
$ /cygdrive/u/flori/workspace/android-ndk-r5b/ndk-build
Compile++ thumb : opencv <= cvjni.cpp
Compile++ thumb : cxcore <= cxalloc.cpp
Compile++ thumb : cxcore <= cxarithm.cpp
Compile++ thumb : cxcore <= cxarray.cpp
Compile++ thumb : cxcore <= cxcmp.cpp
Compile++ thumb : cxcore <= cxconvert.cpp
Compile++ thumb : cxcore <= cxcopy.cpp
Compile++ thumb : cxcore <= cxdatastructs.cpp
Compile++ thumb : cxcore <= cxdrawing.cpp
Compile++ thumb : cxcore <= cxdxt.cpp
Compile++ thumb : cxcore <= cxerror.cpp
Compile++ thumb : cxcore <= cximage.cpp
Compile++ thumb : cxcore <= cxjacobieigens.cpp
Compile++ thumb : cxcore <= cxlogic.cpp
Compile++ thumb : cxcore <= cxlut.cpp
Compile++ thumb : cxcore <= cxmathfuncs.cpp
Compile++ thumb : cxcore <= cxmatmul.cpp
Compile++ thumb : cxcore <= cxmatrix.cpp
Compile++ thumb : cxcore <= cxmean.cpp
Compile++ thumb : cxcore <= cxmeansdv.cpp
Compile++ thumb : cxcore <= cxminmaxloc.cpp
Compile++ thumb : cxcore <= cxnorm.cpp
Compile++ thumb : cxcore <= cxouttext.cpp
Compile++ thumb : cxcore <= cxpersistence.cpp
Compile++ thumb : cxcore <= cxprecomp.cpp
Compile++ thumb : cxcore <= cxrand.cpp
Compile++ thumb : cxcore <= cxsumpixels.cpp
Compile++ thumb : cxcore <= cxsvd.cpp
Compile++ thumb : cxcore <= cxswitcher.cpp
Compile++ thumb : cxcore <= cxtables.cpp
Compile++ thumb : cxcore <= cxutils.cpp
StaticLibrary : libstdc++.a
StaticLibrary : libcxcore.a
Compile++ thumb : cv <= cvaccum.cpp
Compile++ thumb : cv <= cvadapthresh.cpp
Compile++ thumb : cv <= cvapprox.cpp
Compile++ thumb : cv <= cvcalccontrasthistogram.cpp
Compile++ thumb : cv <= cvcalcimagehomography.cpp
Compile++ thumb : cv <= cvcalibinit.cpp
Compile++ thumb : cv <= cvcalibration.cpp
Compile++ thumb : cv <= cvcamshift.cpp
Compile++ thumb : cv <= cvcanny.cpp
Compile++ thumb : cv <= cvcolor.cpp
Compile++ thumb : cv <= cvcondens.cpp
Compile++ thumb : cv <= cvcontours.cpp
Compile++ thumb : cv <= cvcontourtree.cpp
Compile++ thumb : cv <= cvconvhull.cpp
Compile++ thumb : cv <= cvcorner.cpp
Compile++ thumb : cv <= cvcornersubpix.cpp
Compile++ thumb : cv <= cvderiv.cpp
Compile++ thumb : cv <= cvdistransform.cpp
Compile++ thumb : cv <= cvdominants.cpp
Compile++ thumb : cv <= cvemd.cpp
Compile++ thumb : cv <= cvfeatureselect.cpp
Compile++ thumb : cv <= cvfilter.cpp
Compile++ thumb : cv <= cvfloodfill.cpp
Compile++ thumb : cv <= cvfundam.cpp
Compile++ thumb : cv <= cvgeometry.cpp
Compile++ thumb : cv <= cvhaar.cpp
Compile++ thumb : cv <= cvhistogram.cpp
Compile++ thumb : cv <= cvhough.cpp
Compile++ thumb : cv <= cvimgwarp.cpp
Compile++ thumb : cv <= cvinpaint.cpp
Compile++ thumb : cv <= cvkalman.cpp
Compile++ thumb : cv <= cvlinefit.cpp
Compile++ thumb : cv <= cvlkpyramid.cpp
Compile++ thumb : cv <= cvmatchcontours.cpp
Compile++ thumb : cv <= cvmoments.cpp
Compile++ thumb : cv <= cvmorph.cpp
Compile++ thumb : cv <= cvmotempl.cpp
Compile++ thumb : cv <= cvoptflowbm.cpp
Compile++ thumb : cv <= cvoptflowhs.cpp
Compile++ thumb : cv <= cvoptflowlk.cpp
Compile++ thumb : cv <= cvpgh.cpp
Compile++ thumb : cv <= cvposit.cpp
Compile++ thumb : cv <= cvprecomp.cpp
Compile++ thumb : cv <= cvpyramids.cpp
Compile++ thumb : cv <= cvpyrsegmentation.cpp
Compile++ thumb : cv <= cvrotcalipers.cpp
Compile++ thumb : cv <= cvsamplers.cpp
Compile++ thumb : cv <= cvsegmentation.cpp
Compile++ thumb : cv <= cvshapedescr.cpp
Compile++ thumb : cv <= cvsmooth.cpp
Compile++ thumb : cv <= cvsnakes.cpp
Compile++ thumb : cv <= cvstereobm.cpp
Compile++ thumb : cv <= cvstereogc.cpp
Compile++ thumb : cv <= cvsubdivision2d.cpp
Compile++ thumb : cv <= cvsumpixels.cpp
Compile++ thumb : cv <= cvsurf.cpp
Compile++ thumb : cv <= cvswitcher.cpp
Compile++ thumb : cv <= cvtables.cpp
Compile++ thumb : cv <= cvtemplmatch.cpp
Compile++ thumb : cv <= cvthresh.cpp
Compile++ thumb : cv <= cvundistort.cpp
Compile++ thumb : cv <= cvutils.cpp
StaticLibrary : libcv.a
SharedLibrary : libopencv.so
U:/flori/workspace/android-ndk-r5b/toolchains/arm-linux-androideabi-4.4.3/prebui
lt/windows/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-andr
oideabi/bin/ld.exe: cannot find -lcxcore
collect2: ld returned 1 exit status
make: *** [/cygdrive/u/flori/workspace/android/testOpenCV/obj/local/armeabi/libo
pencv.so] Error 1
내가 Windows 시스템에서 컴파일하려고를 그리고 최신 NDK 버전으로 ...
누구나이 링크 오류가 무엇을 의미하는지, 그리고 다시 작동하게하려면 무엇을 할 수 있습니까? 누군가가 나는 1.1 일에서 대신 OpenCV의 현재 버전 (사용, 안드로이드 OpenCV의를 컴파일하는 또 다른 방법이 있다는 것을 발견 작동하도록 문제를받은 후
을 도울 수 있다면
좋은 것 STL과 예외를 지원하고 최신 OpenCV 버전을 지원하는 crystax의 수정 된 Android NDK. 그에모든 정보는 여기에서 찾을 수 있습니다 : 이 http://opencv.willowgarage.com/wiki/Android
현재의 SVN 트렁크와 내가했던 crystax-R4의 안드로이드 NDK뿐만 아니라 꿀꺽 꿀꺽를 다운로드했다.
폴더를 입력하고 빌드 디렉토리를 생성 한 후 cmake를 실행 한 다음 작동하는 것처럼 보이는 정적 라이브러리를 작성했습니다. 적어도 오류없이 make 명령을 성공적으로 실행했습니다.
나는 지금은 안드로이드 JNI 폴더를 입력하고 다시 '확인'실행되도록 공유 라이브러리를 구축하고 싶어하지만,이 오류를 가지고 :% make -j4
OPENCV_CONFIG = ../build/android-opencv.mk
make clean-swig &&\
mkdir -p jni/gen &&\
mkdir -p src/com/opencv/jni &&\
swig -java -c++ -package "com.opencv.jni" \
-outdir src/com/opencv/jni \
-o jni/gen/android_cv_wrap.cpp jni/android-cv.i
OPENCV_CONFIG = ../build/android-opencv.mk
make[1]: Entering directory `/home/florian/android-opencv-willowgarage/android/android-jni'
make[1]: warning: jobserver unavailable: using -j1. Add `+' to parent make rule.
rm -f jni/gen/android_cv_wrap.cpp
make[1]: Leaving directory `/home/florian/android-opencv-willowgarage/android/android-jni'
/home/florian/android-ndk-r4-crystax/ndk-build OPENCV_CONFIG=../build/android-opencv.mk \
PROJECT_PATH= ARM_TARGETS="armeabi armeabi-v7a" V=
/home/florian/android-ndk-r4-crystax/ndk-build OPENCV_CONFIG=../build/android-opencv.mk \
PROJECT_PATH= ARM_TARGETS="armeabi armeabi-v7a" V=
make[1]: Entering directory `/home/florian/android-opencv-willowgarage/android/android-jni'
/home/florian/android-opencv-willowgarage/android/android-jni/jni/Android.mk:10: ../build/android-opencv.mk: No such file or directory
make[1]: Entering directory `/home/florian/android-opencv-willowgarage/android/android-jni'
/home/florian/android-opencv-willowgarage/android/android-jni/jni/Android.mk:10: ../build/android-opencv.mk: No such file or directory
/home/florian/android-opencv-willowgarage/android/android-jni/jni/Android.mk:10: ../build/android-opencv.mk: No such file or directory
make[1]: warning: jobserver unavailable: using -j1. Add `+' to parent make rule.
/home/florian/android-opencv-willowgarage/android/android-jni/jni/Android.mk:10: ../build/android-opencv.mk: No such file or directory
make[1]: *** No rule to make target `../build/android-opencv.mk'. Stop.
make[1]: Leaving directory `/home/florian/android-opencv-willowgarage/android/android-jni'
make: *** [libs/armeabi/libandroid-opencv.so] Error 2
make: *** Waiting for unfinished jobs....
make[1]: warning: jobserver unavailable: using -j1. Add `+' to parent make rule.
make[1]: *** No rule to make target `../build/android-opencv.mk'. Stop.
make[1]: Leaving directory `/home/florian/android-opencv-willowgarage/android/android-jni'
make: *** [libs/armeabi-v7a/libandroid-opencv.so] Error 2
누군가가이 무엇을 의미하는지 생각하고 내가 무엇을해야 하는가를 공유 라이브러리를 만들 수 있습니까?
...
좋아 그것이 빌드 디렉토리에없는 무언가를 갖고있는 것 같아요 나에게왔다 ... 그러나 심지어 빌드 디렉토리가 안드로이드에 없었다 오류 메시지를 살펴 가진 후 폴더를 만들었으므로 'cmake'를 실행하고 'make'를 다시 실행하면이 오류가 발생하지만이 오류가 발생합니다.
Compile thumb : opencv_lapack <= /home/florian/android-opencv-willowgarage/3rdparty/lapack/sgetrf.c
Compile thumb : opencv_lapack <= /home/florian/android-opencv-willowgarage/3rdparty/lapack/scopy.c
Compile++ thumb: opencv_core <= /home/florian/android-opencv-willowgarage/modules/core/src/matrix.cpp
cc1plus: error: /home/florian/android-opencv-willowgarage/android/../modules/index.rst/include: Not a directory
make[3]: *** [/home/florian/android-opencv-willowgarage/android/build/obj/local/armeabi/objs/opencv_core/src/matrix.o] Error 1
make[3]: *** Waiting for unfinished jobs....
make[2]: *** [android-opencv] Error 2
make[1]: *** [CMakeFiles/ndk.dir/all] Error 2
make: *** [all] Error 2
아무도 몰라요.
나는 그 파일을 가지고 있습니다 : target = android-3 ... WIndows를 사용하고있는 것이 문제가 될 수 있습니까? 그래서 대개 Linux에 자동으로 포함되는 무언가가 누락 되었습니까? – evident
android-8을 시도해 보는 것은 어떨까요? –
이미 찾고있는 라이브러리를 구축했습니다. 다른 플랫폼에서 Android.mk가 어떻게 해석되는지 궁금합니다. –