[Android] 안드로이드 용 OpenCV 빌드하기

2024. 1. 22. 09:44모바일프로그래밍/안드로이드

728x90

하다가 만 저번 글에서 ndk version 을 바꾸어 주었는 데...

가만 생각해 보니, 그 버전에서 컴파일 된 안드로이드 라이브러리가 그 버전으로 컴파일/빌드 된 것이

맞다는 생각이 들었습니다.

그래서, 빌드를 한 번 다시 해보고 안 맞다 싶으면 그냥 이 버전의 라이브러리를 사용 해서 진행 할까 하는 생각이 드네요...

 

안드로이드 용 OpenCV 빌드하기

안드로이드 용 OpenCV 는 윈도우용 빌드하는 것보다는 정신건강에 덜 해로울 것 같습니다.

여담이지만, 윈도우용으로 빌드 해보겠다고 몇 번을 해봤는 지 세어 봤더니 엄청 많이 해 보았더군요.(참고 1.) 스스로 생각 해 봐도 거의 절반의 성공 정도로 생각입니다.

하지만, 안드로이드 용 OpenCV 는 이미 구글에서 툴체인을 지원해 주기 때문에 조금만 신경써 주면 될 것같아서 진행 해보기로 했습니다.

 

일단 소스를 받아다가, 빌드를 원하는 곳에다 풀어 줍니다.

위 SDK 를 사용하기 앞서 현재 하고 있는 짓에 대해서 얘기 해본다고 하면,

  • 일단 오류가 났다
  • 그리고, 그 오류라는 것은 sdk 에 들어 있는 라이브러리가 오래 되었다
  • 마지막으로 그 라이브러리를 빌드한 NDK 버전이 오래 되었다.

때문에... 이런 작업을 하고 있다는 것입니다.

 

툴체인을 위한 SDK 만들기

우선 안드로이드 SDK 를 하나 새로 만들어 주도록 하겠습니다. SDK 폴더에 내용을 채우기 위해서는 sdkmanager가 필요 한데 이는 cmdline-tools 을 사용 해야 합니다.

sdkmanager "build-tools;26.0.3" 
"build-tools;29.0.3" 
"cmake;3.22.1" 
"cmdline-tools;latest" 
"ndk;26.1.10909125" "platform-tools" 
"platforms;android-29" 
--sdk_root=%ANDROID_HOME% 
 

OpenCV 빌드

이렇게 해서 SDK 폴더가 만들어 졌으면, 이제 OpenCV를 빌드 할 준비를 해야 합니다.

빌드를 위해서 참고 할만한 것은 OpenCV SDK 안에 들어 있는 android.toolchain.cmake 를 쳐다보면 다음의 내용이 나옵니다.

#  Usage Windows:
#     You need native port of make to build your project.
#     Android NDK r7 (and newer) already has make.exe on board.
#     For older NDK you have to install it separately.
#     For example, this one: http://gnuwin32.sourceforge.net/packages/make.htm
#
#   $ SET ANDROID_NDK=C:\absolute\path\to\the\android-ndk
#   $ mkdir build && cd build
#   $ cmake.exe -G"MinGW Makefiles"
#       -DCMAKE_TOOLCHAIN_FILE=path\to\the\android.toolchain.cmake
#       -DCMAKE_MAKE_PROGRAM="%ANDROID_NDK%\prebuilt\windows\bin\make.exe" ..
#   $ cmake.exe --build .
 

위 내용을 어림잡아서 나의 컴터 환경에 맞추기 위한 환경변수들은 다음과 같습니다.

@ECHO sdkmanager --sdk_root=%ANDROID_HOME% --list
@ECHO sdkmanager "build-tools;26.0.3" "build-tools;29.0.3" "cmake;3.22.1" "cmdline-tools;latest" "ndk;26.1.10909125" --sdk_root=%ANDROID_HOME% 
@ECHO SET JAVA_HOME=D:\DEV\Experiments\OpenCV\android-build\jdk-19.0.1
@ECHO SET CXX_HOME=%ANDROID_NDK%\toolchains\llvm\prebuilt\windows-x86_64
@ECHO SET GRADLE_HOME=C:\DEV\Tools\gradle-7.0.2
@REM SET PATH=%PYTHON_HOME%;%GRADLE_HOME%\bin;%ANT_HOME%\bin;%CXX_HOME%\bin;%CMAKE_HOME%\bin;%JAVA_HOME%\bin;%ANDROID_HOME%\cmdline-tools\bin;.;%PATH%

SET JAVA_HOME=C:\DEV\SDK\JDK\jdk-11.0.2
SET ANDROID_HOME=C:\DEV\SDK\android-sdk
SET CMAKE_HOME=%ANDROID_HOME%\cmake\3.22.1
SET ANDROID_NDK=%ANDROID_HOME%\ndk\26.1.10909125
SET ANT_HOME=C:\DEV\Tools\apache-ant-1.9.16
SET CV_HOME=C:\DEV\SDK\opencv-4.8.1
SET PYTHON_HOME=C:\DEV\SDK\anaconda3
@REM SET ARCH=armeabi-v7a
SET ARCH=arm64-v8a

SET PATH=%PYTHON_HOME%;%ANT_HOME%\bin;%CMAKE_HOME%\bin;%JAVA_HOME%\bin;%ANDROID_HOME%\cmdline-tools\bin;.;%PATH%
 

그럼 다음 명령은 다음과 같이 주면 되겠네요(참고 2. 스크립트 예제)

cmake.exe 
-G"MinGW Makefiles" 
-DBUILD_SHARED_LIBS=OFF 
-DANDROID_SDK=%ANDROID_HOME% 
-DBUILD_JAVA=ON 
-DBUILD_opencv_java=ON 
-DBUILD_opencv_java_bindings_gen=ON 
-DJAVA_AWT_INCLUDE_PATH:PATH=%JAVA_HOME%\include 
-DJAVA_AWT_LIBRARY:FILEPATH=%JAVA_HOME%\include\jawt.h 
-DJAVA_INCLUDE_PATH:PATH=%JAVA_HOME%\include 
-DJAVA_INCLUDE_PATH2:PATH=%JAVA_HOME%\include\win32 
-DJAVA_JVM_LIBRARY:FILEPATH=%JAVA_HOME%\include\jni.h 
-DANT_EXECUTABLE:FILEPATH=%ANT_HOME%/bin/ant.bat 
-DCMAKE_TOOLCHAIN_FILE=%ANDROID_NDK%\build\cmake\android.toolchain.cmake 
-DCMAKE_MAKE_PROGRAM="C:\DEV\SDK\android-sdk\ndk\26.1.10909125\prebuilt\windows-x86_64\bin\make.exe"  
-DANDROID_ABI=%ARCH% 
-DCMAKE_INSTALL_PREFIX:PATH=%CV_HOME%/output/%ARCH%/lib/ ..
 

이 환경 설정에 대한 로그는 다음과 같이 나오면 될 것 같습니다.

... 위에 다 생략 ...
--   Parallel framework:            pthreads
--
--   Trace:                         YES (with Intel ITT)
--
--   Other third-party libraries:
--     Custom HAL:                  YES (carotene (ver 0.0.1))
--     Protobuf:                    build (3.19.1)
--     Flatbuffers:                 builtin/3rdparty (23.5.9)
--
--   Python (for build):            C:/DEV/SDK/anaconda3/python.exe
--
--   Java:                          export all functions
--     ant:                         C:/DEV/Tools/apache-ant-1.9.16/bin/ant.bat (ver )
--     Java wrappers:               YES ()
--     Java tests:                  NO
--
--   Install to:                    C:/DEV/SDK/opencv-4.8.1/output/armeabi-v7a/lib
-- -----------------------------------------------------------------
--
-- Configuring done
-- Generating done
-- Build files have been written to: C:/DEV/SDK/opencv-4.8.1/opencv-4.8.1/build
 

그러고나서 다음 명령을 치

cmake --build .
 

참고로 cmake 에서 빌드 클린 명령은 다음과 같습니다.

cmake --build . --target clean
 

 

한참을 아래 화면을 보고 있으면 됩니다. (74퍼센트까지 왔으니..잘 하면 되겠네요~ㅋ)

오래 기다리면 뭐가 나와도 나옵니다. 그런데 이렇게 하면 모든 테스트 성능 자바 컴파일 등등을 다하고 있어서 정확히 이 짓(?)을 하는 목적은 camera-calibration 을 안드로이드 스튜디오에서 제대로 빌드 하기 위해서 높은 ndk 버전으로 라이브러리를 빌드 하려는 것입니다.

 

따라서 다음 세개의 스크립트를 테스트 해 보았습니다.

1. 자바 바인딩까지 빌드 하는 버전

cmake.exe -G"MinGW Makefiles" -DBUILD_SHARED_LIBS=OFF -DANDROID_SDK=%ANDROID_HOME% -DBUILD_JAVA=ON -DBUILD_opencv_java=ON -DBUILD_opencv_java_bindings_gen=ON -DJAVA_AWT_INCLUDE_PATH:PATH=%JAVA_HOME%\include -DJAVA_AWT_LIBRARY:FILEPATH=%JAVA_HOME%\include\jawt.h -DJAVA_INCLUDE_PATH:PATH=%JAVA_HOME%\include -DJAVA_INCLUDE_PATH2:PATH=%JAVA_HOME%\include\win32 -DJAVA_JVM_LIBRARY:FILEPATH=%JAVA_HOME%\include\jni.h -DANT_EXECUTABLE:FILEPATH=%ANT_HOME%/bin/ant.bat -DCMAKE_TOOLCHAIN_FILE=%ANDROID_NDK%\build\cmake\android.toolchain.cmake -DCMAKE_MAKE_PROGRAM="C:\DEV\SDK\android-sdk\ndk\26.1.10909125\prebuilt\windows-x86_64\bin\make.exe"  -DANDROID_ABI=%ARCH% -DCMAKE_INSTALL_PREFIX:PATH=%CV_HOME%/output/%ARCH%/lib/ ..

cmake.exe -G"MinGW Makefiles" ^
-DBUILD_SHARED_LIBS=OFF  ^
-DANDROID_SDK=%ANDROID_HOME%   ^
-DBUILD_JAVA=ON   ^
-DBUILD_opencv_java=ON   ^
-DBUILD_opencv_java_bindings_gen=ON   ^
-DJAVA_AWT_INCLUDE_PATH:PATH=%JAVA_HOME%\include   ^
-DJAVA_AWT_LIBRARY:FILEPATH=%JAVA_HOME%\include\jawt.h   ^
-DJAVA_INCLUDE_PATH:PATH=%JAVA_HOME%\include   ^
-DJAVA_INCLUDE_PATH2:PATH=%JAVA_HOME%\include\win32   ^
-DJAVA_JVM_LIBRARY:FILEPATH=%JAVA_HOME%\include\jni.h   ^
-DANT_EXECUTABLE:FILEPATH=%ANT_HOME%/bin/ant.bat   ^
-DCMAKE_TOOLCHAIN_FILE=%ANDROID_NDK%\build\cmake\android.toolchain.cmake   ^
-DCMAKE_MAKE_PROGRAM="C:\DEV\SDK\android-sdk\ndk\26.1.10909125\prebuilt\windows-x86_64\bin\make.exe"    ^
-DANDROID_ABI=%ARCH% -DCMAKE_INSTALL_PREFIX:PATH=%CV_HOME%/output/%ARCH%/lib/ ..
 

위 스크립트는 자바 빌드시 오류가 발생 했으나, 라이브러리는 제대로 빌드가 되었습니다.

실행 시 오류가 발생 합니다.

 

2. 옵션 추가 버전

cmake.exe -G"MinGW Makefiles" ^
-DBUILD_SHARED_LIBS=OFF  ^
-DANDROID_SDK=%ANDROID_HOME%   ^
-DBUILD_JAVA=ON   ^
-DBUILD_opencv_java=ON   ^
-DBUILD_opencv_java_bindings_gen=ON   ^
-DJAVA_AWT_INCLUDE_PATH:PATH=%JAVA_HOME%\include   ^
-DJAVA_AWT_LIBRARY:FILEPATH=%JAVA_HOME%\include\jawt.h   ^
-DJAVA_INCLUDE_PATH:PATH=%JAVA_HOME%\include   ^
-DJAVA_INCLUDE_PATH2:PATH=%JAVA_HOME%\include\win32   ^
-DJAVA_JVM_LIBRARY:FILEPATH=%JAVA_HOME%\include\jni.h   ^
-DANT_EXECUTABLE:FILEPATH=%ANT_HOME%/bin/ant.bat   ^
-DCMAKE_TOOLCHAIN_FILE=%ANDROID_NDK%\build\cmake\android.toolchain.cmake   ^
-DCMAKE_MAKE_PROGRAM="C:\DEV\SDK\android-sdk\ndk\26.1.10909125\prebuilt\windows-x86_64\bin\make.exe" ^
-DANDROID_SDK_TOOLS_VERSION=29.0.3 -DANDROID_PLATFORM=android-29 -DGRADLE_VERSION=7.6.3 ^
-DANDROID_ABI=%ARCH% -DCMAKE_INSTALL_PREFIX:PATH=%CV_HOME%/output/%ARCH%/lib/ ..
 

위 버전도 마찬가지로 오류가 발생 합니다.

따라서 자바 바인딩은 별로 의미가 없어서 바인딩을 만들지 않는 버전으로 진행 합니다.

 

3. 자바 바인딩 제거

cmake --build . --target clean
cmake.exe -G"MinGW Makefiles" ^
-DBUILD_SHARED_LIBS=OFF  ^
-DANDROID_SDK=%ANDROID_HOME%   ^
-DBUILD_JAVA=ON   ^
-DBUILD_opencv_java=ON   ^
-DBUILD_opencv_java_bindings_gen=ON   ^
-DBUILD_TESTS=OFF  ^
-DBUILD_PERF_TESTS=OFF  ^
-DBUILD_ANDROID_EXAMPLES=OFF  ^
-DBUILD_ANDROID_PROJECTS=OFF  ^
-DJAVA_AWT_INCLUDE_PATH:PATH=%JAVA_HOME%\include   ^
-DJAVA_AWT_LIBRARY:FILEPATH=%JAVA_HOME%\include\jawt.h   ^
-DJAVA_INCLUDE_PATH:PATH=%JAVA_HOME%\include   ^
-DJAVA_INCLUDE_PATH2:PATH=%JAVA_HOME%\include\win32   ^
-DJAVA_JVM_LIBRARY:FILEPATH=%JAVA_HOME%\include\jni.h   ^
-DANT_EXECUTABLE:FILEPATH=%ANT_HOME%/bin/ant.bat   ^
-DCMAKE_TOOLCHAIN_FILE=%ANDROID_NDK%\build\cmake\android.toolchain.cmake   ^
-DCMAKE_MAKE_PROGRAM="C:\DEV\SDK\android-sdk\ndk\26.1.10909125\prebuilt\windows-x86_64\bin\make.exe" ^
-DANDROID_SDK_TOOLS_VERSION=29.0.3 -DANDROID_PLATFORM=android-29 -DGRADLE_VERSION=7.6.3 ^
-DANDROID_ABI=%ARCH% -DCMAKE_INSTALL_PREFIX:PATH=%CV_HOME%/output/%ARCH%/lib/ ..
 

위의 버전도 마찬가지로 라이브러리 생성에는 문제가 없으나, 여전히 실행 시 오류가 발생 했습니다.

SDK Tool 버전과 Platform 버전을 현재 4.8.1 에서 권장 하는 버전으로 맞춰서 빌드 해 보았습니다.

 

4. 최종 버전 스크립트(자바바인딩 없음)

cmake --build . --target clean
cmake.exe -G"MinGW Makefiles" ^
-DBUILD_SHARED_LIBS=OFF  ^
-DANDROID_SDK=%ANDROID_HOME%   ^
-DBUILD_JAVA=ON   ^
-DBUILD_opencv_java=ON   ^
-DBUILD_opencv_java_bindings_gen=OFF   ^
-DBUILD_TESTS=OFF  ^
-DBUILD_PERF_TESTS=OFF  ^
-DBUILD_ANDROID_EXAMPLES=OFF  ^
-DBUILD_ANDROID_PROJECTS=OFF  ^
-DJAVA_AWT_INCLUDE_PATH:PATH=%JAVA_HOME%\include   ^
-DJAVA_AWT_LIBRARY:FILEPATH=%JAVA_HOME%\include\jawt.h   ^
-DJAVA_INCLUDE_PATH:PATH=%JAVA_HOME%\include   ^
-DJAVA_INCLUDE_PATH2:PATH=%JAVA_HOME%\include\win32   ^
-DJAVA_JVM_LIBRARY:FILEPATH=%JAVA_HOME%\include\jni.h   ^
-DANT_EXECUTABLE:FILEPATH=%ANT_HOME%/bin/ant.bat   ^
-DCMAKE_TOOLCHAIN_FILE=%ANDROID_NDK%\build\cmake\android.toolchain.cmake   ^
-DCMAKE_MAKE_PROGRAM="C:\DEV\SDK\android-sdk\ndk\26.1.10909125\prebuilt\windows-x86_64\bin\make.exe" ^
-DANDROID_SDK_TOOLS_VERSION=26.0.3 -DANDROID_PLATFORM=android-26 -DGRADLE_VERSION=7.6.3 ^
-DANDROID_ABI=%ARCH% -DCMAKE_INSTALL_PREFIX:PATH=%CV_HOME%/output/%ARCH%/lib/ ..
 

OpenCV 빌드 : 결론

다음과 같이 TroubleShooting 관련 내용을 작성 해 보았습니다.

결국, 문제는 다음과 같이 발견 되었습니다.

  • 현재 실행하고자 하는 갤럭시 탭의 SDK 버전과 빌드한 SDK 호환성 문제
    • 갤럭시 탭 SDK 버전은 24 였으나, 빌드 한 권고 버전은 최종 버전이 26이었습니다.
    • 따라서, 해당 갤럭시 탭을 업그레이드 하여 해당 문제를 해결 했습니다.

 

  1. 최종 버전 스크립트를 사용해서 빌드하고,
  2. 갤럭시 탭의 소프트웨어 업데이트를 진행

하였습니다. 그리고 해당 결과는 다음과 같이 실행 되는 화면을 볼 수 있었습니다.

다음으로는 갤럭시 탭 3에서 실행 했던 apk 파일과 sdk 빌드 시 사용 했던 libopencv_java4.so 파일 입니다. 기기 SDK 버전 26 이상이어야 합니다.

 

camera-calibration sample apk

camera-calibration-arm64-v8a-debug.7z
5.91MB

libopencv_java4

 

다음 해 볼것은 제목에 맞게

camera-calibration 샘플을 약간 고쳐서 객체감지 샘플을 만들어 볼까 합니다.

 

이상.

 

참고 1.

 

참고 2. 스크립트 예제

cmake \
	-D CMAKE_TOOLCHAIN_FILE=${ANDROID_NDK_HOME_21}/build/cmake/android.toolchain.cmake \
	-D OPENCV_EXTRA_MODULES_PATH=$SOURCE/opencv/opencv_contrib/modules/ \
	-D BUILD_SHARED_LIBS=ON \
	-D BUILD_TESTS=OFF \
	-D BUILD_PERF_TESTS=OFF \
	-D ANDROID_STL=c++_static \
	-D BUILD_ANDROID_EXAMPLES=OFF \
	-D BUILD_ANDROID_PROJECTS=OFF \
	-D BUILD_JAVA=OFF \
	-D WITH_QT=OFF \
	-D ANDROID_ABI=$ARCH \
	-D ANDROID_NATIVE_API_LEVEL=$ANDROID_VERSION \
	-D CMAKE_BUILD_TYPE=Release \
	-D 3P_LIBRARY_OUTPUT_PATH=$ROOT/output/$OUTARCH/lib/ \
	-D CMAKE_INSTALL_PREFIX:PATH=$ROOT/output/$OUTARCH/lib/ \
	..
 
cmake.exe -G"MinGW Makefiles" 
-DANDROID_SDK_ROOT=C:\DEV\SDK\AndSDK 
-DCMAKE_TOOLCHAIN_FILE=C:\DEV\SDK\AndSDK\ndk\26.1.10909125\build\cmake\android.toolchain.cmake 
-DCMAKE_MAKE_PROGRAM="C:\DEV\SDK\AndSDK\ndk\26.1.10909125\prebuilt\windows-x86_64\bin\make.exe" 
-DBUILD_SHARED_LIBS=ON -DBUILD_FAT_JAVA_LIB=OFF -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF 
-DANDROID_STL=c++_static -DBUILD_ANDROID_EXAMPLES=OFF 
-DBUILD_ANDROID_PROJECTS=OFF -DBUILD_JAVA=OFF -DWITH_QT=OFF ..
cmake.exe --build .
 
cmake -DBUILD_SHARED_LIBS=OFF ^
	-DOPENCV_EXTRA_MODULES_PATH=/home/plamen/Install/OpenCV_install_info/OpenCV/opencv/build/opencv_contrib/modules \
    -DUSE_AVX_INSTRUCTIONS=ON -DUSE_SSE4_INSTRUCTIONS=ON \
    -DWITH_QT=ON -DWITH_OPENGL=ON  -DOpenGL_GL_PREFERENCE=GLVND \
    -DWITH_CUDA=ON -DWITH_TESSERACT=ON \
    -DWITH_LAPACK=ON -DLAPACKE_INCLUDE_DIR=/home/plamen/Install/OpenCV_install_info/lapack-3.9.0/LAPACKE/include \
    -DLAPACK_CBLAS_H=/home/plamen/Install/OpenCV_install_info/lapack-3.9.0/CBLAS/include/cblas.h \
    -DLAPACK_LAPACKE_H=/home/plamen/Install/OpenCV_install_info/lapack-3.9.0/LAPACKE/include/lapacke.h \
    -DWITH_GSTREAMER=ON -DWITH_EIGEN=ON -DWITH_GTK=ON -DWITH_JASPER=ON -DWITH_FFMPEG=ON \
    -DBUILD_EXAMPLES=ON -DINSTALL_C_EXAMPLES=ON -DINSTALL_PYTHON_EXAMPLES=ON \
    -DOPENCV_ENABLE_NONFREE=ON -DINSTALL_TESTS=ON -DINSTALL_PYTHON_SAMPLES=ON -DINSTALL_C_SAMPLES=ON -DOPENCV_FORCE_3RDPARTY_BUILD=ON \
    -DPYTHON2_EXECUTABLE=/usr/bin/python2.7 -DPYTHON2_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython2.7.so \
    -DPYTHON2_INCLUDE_DIR=/usr/include/python2.7 -DPYTHON2_NUMPY_INCLUDE_DIR=/usr/include/python2.7/numpy \
    -DPYTHON2_PACKAGES_PATH=/usr/lib/python2.7/dist-packages \
    -DPYTHON3_EXECUTABLE=/usr/bin/python3 -DPYTHON3_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.8.so \
    -DPYTHON3_INCLUDE_DIR=/usr/include/python3.8 -DPYTHON3_NUMPY_INCLUDE_DIR=/usr/include/python3.8/numpy \
    -DPYTHON3_PACKAGES_PATH=/usr/lib/python3/dist-packages -DOPENCV_FORCE_PYTHON_LIBS=ON \
    -DPYTHON_DEFAULT_EXECUTABLE=$(which python3) -DBUILD_NEW_PYTHON_SUPPORT=ON -DBUILD_opencv_python3=ON -DHAVE_opencv_python3=ON \
    -DBUILD_JAVA=ON -DBUILD_opencv_java=ON -DBUILD_opencv_java_bindings_generator=ON -DBUILD_opencv_java_bindings_gen=ON \
    -DJAVA_AWT_INCLUDE_PATH=/usr/lib/jvm/jdk-14.0.1/include -DJAVA_AWT_LIBRARY=/usr/lib/jvm/jdk-14.0.1/lib/libjawt.so \
    -DJAVA_INCLUDE_PATH=/usr/lib/jvm/jdk-14.0.1/include -DJAVA_INCLUDE_PATH2=/usr/lib/jvm/jdk-14.0.1/include/linux \
    -DJAVA_JVM_LIBRARY=/usr/lib/jvm/jdk-14.0.1/lib/server/libjvm.so \
    -DBUILD_TESTS=ON -DBUILD_opencv_imgproc=ON -DBUILD_opencv_imgcodecs=ON -DBUILD_opencv_core=ON \
    -DOPENCV_GENERATE_PKGCONFIG=ON .. 
 
SET JAVA_HOME=C:\DEV\SDK\JDK\jdk1.8.0_131
cmake.exe -G"MinGW Makefiles" ^
-DBUILD_SHARED_LIBS=OFF  ^
-DANDROID_SDK=%AND_HOME%  ^
-DBUILD_JAVA=ON -DBUILD_opencv_java=ON -DBUILD_opencv_java_bindings_gen=ON ^
-DJAVA_AWT_INCLUDE_PATH:PATH=%JAVA_HOME%\include  ^
-DJAVA_AWT_LIBRARY:FILEPATH=%JAVA_HOME%\include\jawt.h  ^
-DJAVA_INCLUDE_PATH:PATH=%JAVA_HOME%\include  ^
-DJAVA_INCLUDE_PATH2:PATH=%JAVA_HOME%\include\win32  ^
-DJAVA_JVM_LIBRARY:FILEPATH=%JAVA_HOME%\include\jni.h  ^
-DANT_EXECUTABLE:FILEPATH=%ANT_HOME%/bin/ant.bat  ^
-DCMAKE_TOOLCHAIN_FILE=%AND_HOME%\ndk\26.1.10909125\build\cmake\android.toolchain.cmake  ^
-DCMAKE_MAKE_PROGRAM="C:\DEV\SDK\AndSDK\ndk\26.1.10909125\prebuilt\windows-x86_64\bin\make.exe"  ^
..
 

 

 

728x90