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