opencv跨平台arm交叉编译之ubuntu

目录

  • 1. 安装交叉编译工具链
  • 2. 安装依赖
  • 3. 配置工具链
    • 3.1 新建build目录
    • 3.2 安装cmake-gui
    • 3.3 工具链配置界面进行配置
      • 3.3.1 终端输入以下命令
      • 3.3.2 点击Configure,弹出编译方式选择对话框:
      • 3.3.3 点击Next
      • 3.3.4 点击Finish
      • 3.3.5 点击Configure。
      • 3.3.6 Generate
  • 4. 编译

1. 安装交叉编译工具链

32位系统:

sudo apt-get update
sudo apt-get install gcc-arm-linux-gnueabihf
sudo apt-get install g++-arm-linux-gnueabihf

64位系统:

sudo apt-get update
sudo apt-get install gcc-aarch64-linux-gnu
sudo apt-get install g++-aarch64-linux-gnu

2. 安装依赖

sudo apt-get update
sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev

3. 配置工具链

3.1 新建build目录

用于存放编译好的配置文件等信息

sudo mkdir build 

3.2 安装cmake-gui

//查看是否已安装cmake
cmake --version    //若无提示则表示未安装
sudo apt-get install cmake-gui    //cmake-gui 可以调用图形化界面进行配置
cmake-gui --version    //查看安装成功与否//若要卸载cmake
sudo apt-get autoremove cmake

3.3 工具链配置界面进行配置

3.3.1 终端输入以下命令

sudo cmake-gui

在这里插入图片描述
说明:

Where is the source code对应opencv的文件夹,Where to build the binaries对应opencv存放编译好的配置文件等信息的文件夹(刚才创建的build文件夹)

3.3.2 点击Configure,弹出编译方式选择对话框:

在这里插入图片描述

3.3.3 点击Next

在这里插入图片描述
说明:
32位
Operating System 输入Linux ;
Processor 输入 arm ;
C 输入arm-linux-gnueabihf-gcc路径:/usr/bin/arm-linux-gnueabihf-gcc;
C++路径:/usr/bin/arm-linux-gnueabihf-g++;
Target Root输入:/usr/arm-linux-gnueabihf/lib
64位
Operating System 输入Linux ;
Processor 输入 aarch64 ;
C 输入aarch64-linux-gnu-gcc路径:/usr/bin/aarch64-linux-gnu-gcc;
C++路径:/usr/bin/aarch64-linux-gnu-g++;
Target Root输入:/usr/arm-linux-gnu/lib

3.3.4 点击Finish

编译选项根据自己的需求进行选择,包括各种目录的配置

3.3.5 点击Configure。

3.3.6 Generate

4. 编译

cd build
make -j8
make install

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/104349.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RISC-V 特权级架构

特权级别 级别的数值越大,特权级越高,掌控硬件的能力越强,在CPU硬件层面,M模式必须存在,其它模式可以不存在 执行环境调用 ecall ,这是一种很特殊的陷入类的指令, 相邻两特权级软件之间的接口正…

2023年9月Web3行业月度发展报告区块链篇 | 陀螺科技会员专享

9月是加密市场的活动月,斯坦福区块链周、Token2049等大型活动相继举办,后者更是创下超过1万人的历史最高纪录,成为了全球最大的Web3活动。在本次Token2049上,RWA、支付以及出入金成为了讨论度最多的活动。尽管活动如火如荼&#x…

docker入门加实战—docker数据卷

docker入门加实战—docker数据卷 容器是隔离环境,容器内程序的文件、配置等都在容器的内部,要读写容器内的文件非常不方便。 因此,容器提供程序的运行环境,但是程序运行产生的数据、程序运行依赖的配置都应该与容器进行解耦。 …

JUC第二十八讲:JUC工具类: Semaphore详解

JUC工具类: Semaphore详解 本文是JUC第二十八讲,JUC工具类: Semaphore详解。Semaphore底层是基于AbstractQueuedSynchronizer来实现的。Semaphore称为计数信号量,它允许n个任务同时访问某个资源,可以将信号量看做是在向外分发使用资源的许可证…

亳州市的自然风光与旅游资源:欣赏安徽省中部的壮丽景色

亳州市是中国安徽省的一个地级市,位于该省的中部。 亳州市辖区包括谯城区、涡阳县、蒙城县和利辛县等地。亳州市拥有悠久的历史和丰富的文化遗产,同时也以其独特的自然风光而闻名。 首先,让我们来了解一下亳州的历史和景点。亳州的历史可以…

软件‘小程序‘前台开发软件定制的知识|app网站搭建

软件,小程序,前台开发软件定制的知识 随着互联网的快速发展,软件,小程序,前台开发软件定制已经成为了企业必备的工具。它可以帮助企业更好地管理业务,提高效率,增强用户体验。那么,什…

vue3学习(五)--- 父子组件传值

文章目录 defineProps普通写法TS写法 defineEmits普通写法TS写法 defineExpose defineProps 和 defineEmits 都是只能在 <script setup> 中使用的编译器宏。他们不需要导入&#xff0c;且会随着 <script setup> 的处理过程一同被编译掉。 defineProps 接收父组件传…

MySQL中使用函数会使索引失效?

文章目录 1、前置准备2、ChatGPT的答案3、实践证明SQL1SQL2SQL3SQL4SQL5 4、总结 1、前置准备 首先创建我们要测试的库表 CREATE TABLE lianhe_index (id int(11) NOT NULL AUTO_INCREMENT COMMENT id,name varchar(255) DEFAULT NULL,age int(11) DEFAULT NULL,number int(1…

Flink报错could not be loaded due to a linkage failure

文章目录 1、报错2、原因3、解决 1、报错 在Flink上提交作业&#xff0c;点Submit没反应&#xff0c;F12看到接口报错信息为&#xff1a; 大概意思是&#xff0c;由于链接失败&#xff0c;无法加载程序的入口点类xx。没啥鸟用的信息&#xff0c;去日志目录继续分析&#xff1a…

Django Channels、WS协议及同步与异步详解

CONTENTS 1. 同步与异步2. WebSocket3. 在JavaScript中使用WebSocket4. Django Channels 1. 同步与异步 在 Django 中&#xff0c;同步和异步主要涉及到请求处理的方式。这两种方式的主要区别在于它们如何处理多个并发请求&#xff1a; 同步&#xff08;Synchronous&#xff…

删除的通话记录也能找回!如何iPhone很早以前的通话记录

是否搜索过忘记保存的拨号号码?是的!我们都经历过,这可能真的很烦人,尤其是当你的iPhone决定隐藏你的通话记录时。但别担心,在这篇文章中,我将向你展示如何使用各种方法查看一个月前iPhone上的通话历史记录。因此,让我们来了解和发现如何在iPhone上查看你过去的通话记录…

什么是指标体系,怎么搭建一套完整的指标体系?(附PDF素材)

什么是指标体系&#xff0c;怎么搭建一套完整的指标体系&#xff1f;数字化转型过程中&#xff0c;这个问题一直困扰着数据分析师。主要体现在&#xff1a; 各部门根据业务需求&#xff0c;都有一部分量化指标&#xff0c;但不够全面&#xff0c;对企业整体数据分析应用能力提…

算法练习12——跳跃游戏

LeetCode 55 跳跃游戏 给你一个非负整数数组 nums &#xff0c;你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标&#xff0c;如果可以&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 贪…

Python日志模块dome

import os import logbook from logbook.more import ColorizedStderrHandler from functools import wrapscur_path os.path.dirname(os.path.dirname(__file__)) # 当前目录的上级目录 log_path os.path.join(cur_path, logs) # 文件夹拼接 if not os.path.exists(log_pa…

MySQL锁概述

数据库锁是一种机制&#xff0c;用于管理并发访问数据库的方式。当多个用户或事务同时访问数据库时&#xff0c;可能会导致数据不一致或冲突的问题。数据库锁的作用是确保数据的一致性和完整性&#xff0c;同时允许多个用户并发地访问数据库。 需要注意的是&#xff0c;加锁是消…

ajax同步与异步,json-serve的安装与使用,node.js的下载

20.ajax json 轻量级的数据格式做配置文件网络传输 xml 重量级的数据格式 可扩展标记语言做配置文件网络传输 现在目前主流就是大量采用json做网络传输数据格式 1.ajax的概念: 与服务器进行’通信’的一种技术,能够实现异步的刷新页面 **同步:**按照顺序一步步的执行,容易造…

VMware和Debian下载

文章目录 ⭐️写在前面的话⭐️一、VMware二、Debain三、建立虚拟机&#x1f680; 先看后赞&#xff0c;养成习惯&#xff01;&#x1f680;&#x1f680; 先看后赞&#xff0c;养成习惯&#xff01;&#x1f680; ⭐️写在前面的话⭐️ CSDN主页&#xff1a;程序员好冰 目前在…

多输入多输出 | MATLAB实现CNN-GRU-Attention卷积神经网络-门控循环单元结合SE注意力机制的多输入多输出预测

多输入多输出 | MATLAB实现CNN-GRU-Attention卷积神经网络-门控循环单元结合SE注意力机制的多输入多输出预测 目录 多输入多输出 | MATLAB实现CNN-GRU-Attention卷积神经网络-门控循环单元结合SE注意力机制的多输入多输出预测预测效果基本介绍程序设计往期精彩参考资料 预测效果…

使用PyTorch处理多维特征输入的完美指南

&#x1f497;&#x1f497;&#x1f497;欢迎来到我的博客&#xff0c;你将找到有关如何使用技术解决问题的文章&#xff0c;也会找到某个技术的学习路线。无论你是何种职业&#xff0c;我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章&#xff0c;也欢…

C++ 模板同时使用默认参数和偏特化

C 模板同时使用默认参数和偏特化 正常的偏特化都很简单&#xff0c;但是如果和默认参数碰到一起就会复杂一点点 先讲答案&#xff08;按照顺序&#xff09;&#xff1a; 如果显示指定了&#xff0c;首先看显示指定的如果没显示指定&#xff0c;就找是否有默认参数的版本如果都…