opencv交叉编译

发布于:2025-02-14 ⋅ 阅读:(14) ⋅ 点赞:(0)

        适用于瑞芯微,海思,酷芯等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