如何在我的ubuntu for arm上交叉编译OpenCV,只需传递arm Linux根文件系统路径就可以自动获取python3包含头文件和python3二进制文件的路径,因此它可以自动获取所有必需的模块x86机器。
使用下面的cmake配置,如果我传递python3解释器它不识别python3库,如果我从cmake配置中删除python3解释器,它识别python3库并使用x86机器的python3解释器。
cmake \
-DCMAKE_TOOLCHAIN_FILE=../platforms/linux/arm-gnueabi.toolchain.cmake \
-DCMAKE_AR=~/Downloads/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-ar
-DWITH_CUDA=OFF \
-DBUILD_TIFF=ON \
-DBUILD_opencv_java=ON \
-DWITH_OPENGL=ON \
-DWITH_OPENCL=ON \
-DWITH_IPP=ON \
-DWITH_TBB=ON \OFF
-DWITH_EIGEN=ON \
-DWITH_FFMPEG=ON \
-DOPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \
-DWITH_GSTREAMER=ON \
-DWITH_FFMPEG=ON \
-DBUILD_opencv_python3=ON \
-DWITH_V4L=ON \
-DWITH_VTK=OFF \
-DBUILD_TESTS=OFF \
-DBUILD_PERF_TESTS=OFF \
-DBUILD_opencv_python2=OFF \
-DPYTHON3_EXECUTABLE=~/rootfs/usr/bin/python3.5 \
-DPYTHON3_LIBRARY=~/rootfs/usr/lib/libpython3.5m.so.1.0 \
-DPYTHON3_INCLUDE_DIR=~/rootfs/usr/include/python3.5m/ \
-DPYTHON3_PACKAGES_PATH=~/rootfs/usr/lib/python3.5/site-packages \
-DPYTHON3_NUMPY_INCLUDE_DIRS=~/rootfs/usr/lib/python3.5/site-packages/numpy/core/include/ \
-DINSTALL_PYTHON_EXAMPLES=ON \
-DINSTALL_C_EXAMPLES=OFF \
-DBUILD_EXAMPLES=ON \
-DBUILD_SAMPLES=OFF \
-DCMAKE_BUILD_TYPE=RELEASE .. && make -j 16
谢谢,
答案 0 :(得分:0)
如果您可以使用OpenCV
您可以在python中创建虚拟环境,然后使用pip install OpenCV
为我节省了大量时间。
使用pip install opencv-python==
选择所需的版本。
这是link