opencv交叉编译

        适用于瑞芯微,海思,酷芯等ARM平台。采用编译脚本配置编译选项,方便编译。

目录

一、创建目录

二、工具链配置

三、编译脚本

四、编译


一、创建目录

mike@mike-virtual-machine:opencv-4.12/opencv/opencv$ tree . -L 1
.
├── 3rdparty
├── apps
├── armlinux.toolchain.cmake
├── build
├── build.sh
├── cmake
├── CMakeLists.txt
├── CONTRIBUTING.md
├── COPYRIGHT
├── data
├── doc
├── include
├── install
├── LICENSE
├── modules
├── platforms
├── README.md
├── samples
└── SECURITY.md

11 directories, 8 files

二、工具链配置

armlinux.toolchain.cmake

cmake_minimum_required(VERSION 3.15)

if (DEFINED ENV{__ITA_ARM_TOOLCHAIN_HAS_RUN})
    return()
endif()
set(ENV{__ITA_ARM_TOOLCHAIN_HAS_RUN} true)

if (NOT DEFINED CMAKE_SYSTEM_NAME)
set(CMAKE_SYSTEM_NAME "Linux")
endif()

if (NOT DEFINED CMAKE_SYSTEM_PROCESSOR)
    set(CMAKE_SYSTEM_PROCESSOR arm)
endif()


set(CMAKE_C_COMPILER "${TOOLCHAIN}-gcc")
set(CMAKE_CXX_COMPILER "${TOOLCHAIN}-g++")

set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)

三、编译脚本

build.sh

#!/bin/bash


BUILD_TYPE=Release
INSTALL_DIR=build/install
TOOLCHAIN=arm-linux-gnueabihf

cmake .. \
	-DCMAKE_TOOLCHAIN_FILE=armlinux.toolchain.cmake \
	-DCMAKE_BUILD_TYPE=${BUILD_TYPE} \
	-DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} \
	-DTOOLCHAIN=${TOOLCHAIN} \
	-DBUILD_opencv_world=ON \
	-DBUILD_TESTS=OFF \
    -DBUILD_EXAMPLES=OFF \
    -DBUILD_ANDROID_EXAMPLES=OFF \
    -DINSTALL_ANDROID_EXAMPLES=OFF 
	

四、编译

cd build/
../build.sh
cmake --build . --config Release -- -j16

先用多线程加速编译,编译到后半段会报错,终止。此时再改成单线程编译即可编译通过。

make install

五、模块裁剪

参考:海思平台OpenCV编译与进一步裁剪

极简版cmake

 cmake ../ \
-DCMAKE_C_COMPILER=arm-himix200-linux-gcc \
-DCMAKE_CXX_COMPILER=arm-himix200-linux-g++ \
-DOPENCV_FORCE_3RDPARTY_BUILD=ON \
-DBUILD_ZLIB=ON \
-DWITH_GTK=OFF \
-DENABLE_NEON=OFF \
-DWITH_GTK_2_X=OFF \
-DWITH_CUDA=OFF \
-DWITH_IPP=OFF \
-DWITH_OPENCL=OFF \
-DWITH_OPENCLAMDBLAS=OFF \
-DWITH_QUIRC=OFF \
-DWITH_OPENCLAMDFFT=OFF \
-DWITH_1394=OFF \
-DWITH_FFMPEG=OFF \
-DWITH_WEBP=OFF \
-DWITH_TIFF=OFF \
-DWITH_OPENEXR=OFF \
-DWITH_PNG=OFF \
-DWITH_PROTOBUF=OFF \
-DWITH_GSTREAMER=OFF \
-DWITH_IMGCODEC_SUNRASTER=OFF \
-DBUILD_SHARED_LIBS=ON \
-DBUILD_opencv_ts=OFF \
-DBUILD_opencv_shape=OFF \
-DBUILD_opencv_stitching=OFF \
-DBUILD_opencv_apps=OFF \
-DBUILD_opencv_calib3d=OFF \
-DBUILD_opencv_dnn=OFF \
-DBUILD_opencv_features2d=OFF \
-DBUILD_opencv_flann=OFF \
-DBUILD_opencv_highgui=OFF \
-DBUILD_opencv_ml=OFF \
-DBUILD_opencv_objdetect=OFF \
-DBUILD_opencv_photo=OFF \
-DBUILD_opencv_video=OFF \
-DBUILD_opencv_videoio=OFF \
-DBUILD_opencv_videostab=OFF \
-DBUILD_opencv_world=ON \
-DBUILD_opencv_python2=OFF \
-DBUILD_opencv_python3=OFF \
-DBUILD_opencv_python_bindings_generator=OFF \
-DBUILD_DOCS=OFF\
-DCMAKE_BUILD_TYPE=RELEASE \
-DCMAKE_INSTALL_PREFIX=../output \
-DCMAKE_CXX_FLAGS="-s -Os" \
-DCMAKE_C_FLAGS="-s -Os"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

月光下的麦克

您的犒赏是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值