【交叉编译】opencv4

获取源码

  1. 代码仓库

编译过程

  1. 编译脚本
  • 默认参数且不带contrib模块
#!/bin/bash
set -e

# 获取绝对路径
ROOT_PWD=$( cd "$( dirname $0 )" && cd -P "$( dirname "$SOURCE" )" && pwd )

# 创建build目录
BUILD_DIR=${ROOT_PWD}/build/build_linux_aarch64
if [[ ! -d "${BUILD_DIR}" ]]; then
  mkdir -p ${BUILD_DIR}
fi

cd ${BUILD_DIR}
cmake -B . -S ${ROOT_PWD} \
-DCMAKE_INSTALL_PREFIX=/opt/opencv \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_C_COMPILER=/usr/bin/aarch64-linux-gnu-gcc \
-DCMAKE_CXX_COMPILER=/usr/bin/aarch64-linux-gnu-g++ \
-DCMAKE_SYSTEM_NAME=Linux \
-DCMAKE_SYSTEM_PROCESSOR=aarch64

make -j8

  • 带opencv_contrib的情况
# 拉取opencv_contrib源码
> cd <opencv_path>
> git clone https://github.com/opencv/opencv_contrib.git


# 根据实际情况修改编译脚本
# 启用opencv_contrib模块
-DOPENCV_EXTRA_MODULES_PATH=${ROOT_PWD}/opencv_contrib/modules

# 启用nonefree模块
-DOPENCV_ENABLE_NONFREE=ON
  1. 执行编译
> chmod +x build.sh
> ./build.sh

> cd ./build/build_linux_aarch64
# 部分路径需要sudo权限
> make install
### RK3588 平台上交叉编译 OpenCV4 的方法 为了在 RK3588 上成功部署 OpenCV4,通常需要通过交叉编译的方式完成构建过程。以下是针对该目标的具体说明: #### 工具链配置 对于 RK3588 芯片架构 (ARM64),需使用适合的交叉编译工具链 `aarch64-buildroot-linux-gnu-gcc` 和 `aarch64-buildroot-linux-gnu-g++` 来替代本地 X86 编译器[^2]。 #### 配置选项设置 CMake 是用于管理 OpenCV 构建的核心工具,在交叉编译过程中,可以通过指定特定参数来适配目标硬件环境。以下是一个典型的 CMake 命令示例,适用于 RK3588: ```bash cmake \ -D CMAKE_SYSTEM_NAME=Linux \ -D CMAKE_C_COMPILER=aarch64-buildroot-linux-gnu-gcc \ -D CMAKE_CXX_COMPILER=aarch64-buildroot-linux-gnu-g++ \ -D CMAKE_FIND_ROOT_PATH=/path/to/sysroot \ -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/install/path/on/target \ -D OPENCV_GENERATE_PKGCONFIG=ON \ -D OPENCV_EXTRA_MODULES_PATH=/path/to/opencv_contrib/modules .. ``` 上述命令中的关键部分解释如下: - `-D CMAKE_SYSTEM_NAME=Linux`: 明确告知 CMake 当前的目标系统为 Linux。 - `-D CMAKE_C_COMPILER` 及 `-D CMAKE_CXX_COMPILER`: 定义使用的交叉编译工具链路径。 - `-D CMAKE_FIND_ROOT_PATH`: 设置根文件系统的路径以便查找依赖库和头文件。 - `-D CMAKE_INSTALL_PREFIX`: 指定安装目录位置,此路径应映射到目标设备上的实际存储区域。 - `-D OPENCV_EXTRA_MODULES_PATH`: 如果计划集成额外模块,则提供 opencv_contrib 中 modules 文件夹的位置[^1]。 #### 构建与安装 执行标准 Makefile 流程即可完成整个项目构建工作: ```bash make -j$(nproc) sudo make install ``` 以上步骤能够有效支持基于 ARM Cortex-A76 CPU 核心设计而成的高性能处理器——Rockchip RK3588 进行图像处理框架移植操作。 #### 注意事项 确保所有依赖项均已正确解决并可用;必要时调整优化标志以匹配具体应用场景需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值