opencv交叉编译

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

目录

一、创建目录

二、工具链配置

三、编译脚本

四、编译


一、创建目录

bash 复制代码
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

cpp 复制代码
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

cpp 复制代码
#!/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 
	

四、编译

bash 复制代码
cd build/
bash 复制代码
../build.sh
bash 复制代码
cmake --build . --config Release -- -j16

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

bash 复制代码
make install
相关推荐
Elastic 中国社区官方博客6 小时前
搜索倍增器:推动收入、生产力和 AI 实现规模化
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
wjkjpcba6 小时前
机器人控制板PCBA怎么加工?从SMT贴片到BGA焊接解析机器人电子制造工艺
大数据·人工智能
青 春 记 忆6 小时前
Dify Docker Compose 通用无损升级指南:从备份、双版本预演到切换与回滚
运维·人工智能·python·docker·容器
小猪妈咪爱学法6 小时前
欧盟最新发布《AI数字综合法案(Digital Omnibus‑on‑AI,AI综合修订法案)
人工智能·网络安全
ZGIAI6 小时前
ZGI Workflow 变量池:接住节点输出
人工智能·架构
梵构广告6 小时前
提升品牌识别度有哪些方法?
人工智能
ZGIAI6 小时前
ZGI 记忆隔离:多人共用不串号
人工智能·架构
星栈独行7 小时前
决定 Agent 交付下限的「操作系统」:Harness 六层架构拆解
人工智能·架构
AKAMAI8 小时前
实时可观测性:Akamai Cloud Pulse 警报功能正式发布
人工智能·云计算
Capricorn19888 小时前
解决全网抄 Karpathy 导致的 LLM Wiki 污染?基于知芽 Notebook Skill 的 raw/ 笔记法排障指南
大数据·论文阅读·人工智能·笔记·论文笔记