-
Notifications
You must be signed in to change notification settings - Fork 918
Open
Description
- Environment and Target
Build environment: Ubuntu 22.04
Target environment: aarch64-Linux-Android
OpenCV:4.10
I have cross compiled Python 3.11 and it can run on Android arm-v8a. I want to cross compile OpenCV to generate a Python library that supports the target environment.
- Building
This is my cmake script:
export PYTHON_HOST=/home/ad/host-dev/x86_python311
export PYTHON_TARGET=/home/ad/dev-lib/python311
cmake \
-DCMAKE_TOOLCHAIN_FILE=/home/ad/Android/Sdk/ndk/27.2.12479018/build/cmake/android.toolchain.cmake \
-DCMAKE_BUILD_TYPE=Release \
-DANDROID_ABI:STRING=arm64-v8a \
-DANDROID_PLATFORM:STRING=android-30 \
-DCMAKE_INSTALL_PREFIX:PATH=/home/ad/dev-lib/opencv/myinstall \
-DBUILD_SHARED_LIBS:BOOL=ON \
-DANDROID_STL=c++_shared \
-DBUILD_opencv_python2:BOOL=OFF \
-DBUILD_opencv_python3:BOOL=ON \
-DPYTHON3_EXECUTABLE:FILEPATH=${PYTHON_HOST}/bin/python3.11 \
-DPYTHON3_INCLUDE_DIR:PATH=${PYTHON_TARGET}/include/python3.11 \
-DPYTHON3_LIBRARY:FILEPATH=${PYTHON_TARGET}/lib/libpython3.11.so.1.0 \
-DOPENCV_PYTHON3_INSTALL_PATH:PATH=${PYTHON_TARGET}/lib/python3.11/site-packages \
-DPYTHON3_PACKAGES_PATH:PATH=${PYTHON_TARGET}/lib/python3.11/site-packages \
-DPYTHON3_NUMPY_INCLUDE_DIRS:PATH=${PYTHON_TARGET}/lib/python3.11/site-packages/numpy/_core/include \
-S ./ -B ./mybuild
After executing the cmake command,python3 is unavailable, the options related to Python 3 are empty, as shown in the following figure.
This is my env:
export ANDROID_NDK_HOME=/home/ad/Android/Sdk/ndk/27.2.12479018
export ANDROID_HOME=/home/ad/Android/Sdk
export ANDROID_SDK_PLANTFORM_TOOLS=/home/ad/Android/Sdk/platform-tools
export MESON_PATH="/home/ad/.local/bin"
export CMAKE_ANDROID_NDK="/home/ad/Android/Sdk/cmake/4.0.2"
export PYTHON3_BIN=/home/ad/host-dev/x86_python311
export LD_LIBRARY_PATH=/home/ad/dev-lib/python311/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/home/ad/host-dev/x86_python311/lib/:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/home/ad/host-dev/x86_python311/lib/python3.11/site-packages/numpy/_core:$LD_LIBRARY_PATH
export PATH=$ANDROID_NDK_HOME:$ANDROID_HOME:$ANDROID_SDK_PLANTFORM_TOOLS:$CMAKE_ANDROID_NDK:$PYTHON3_BIN:$PATH
- Question
(1)Is there a fight for the setting of PYTHON3_deECUTABLE, PYTHON3-INCLUDE-DIR, and PYTHON3_LIBRRY? Which parameter is the Python of the host machine? Which is the Python parameter for the target platform?
(2)How should I modify cmake or environment variable parameters?
Metadata
Metadata
Assignees
Labels
No labels