MultiArch 与 Ubuntu/Debian 的交叉编译(一)

这篇具有很好参考价值的文章主要介绍了MultiArch 与 Ubuntu/Debian 的交叉编译(一)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

什么是“MultiArch”

OpenCV 可能会使用大量第三方库进行视频和图像解码、渲染、加速和复杂的数学算法。CMake 在构建主机上找到第三方组件,交叉编译允许为外部架构或操作系统构建 OpenCV,但我们失去了庞大的组件世界,必须单独交叉编译每个依赖项并在 OpenCV 构建期间指向它。

Debian/Ubuntu MultiArch 有助于解决这个问题。它允许在主机系统上安装多个外部架构库,并在 OpenCV 依赖项解析期间使用它们。

警告

  • 遵循这些步骤将使您的 Linux 环境有点脏。如果可能,最好使用 VM 或容器(例如 Docker)。
  • 本教程要求主机和目标使用相同的 Ubuntu 版本。不要对外部库依赖使用/混合不同的版本。
    • 好:主机和目标均为 23.04。
    • 好:主机和目标均为 23.10。
    • 不好:主机为 23.04,目标为 23.10。
    • 不好:主机是 23.10,目标是 23.04。
  • 本教程可用于 Debian 及其衍生产品,如 Raspberry Pi OS。请进行任何必要的更改。

下载工具

安装必要的工具和工具链以进行交叉编译。

  • 基本上需要 git、cmake、pkgconf 和 build-essential。
  • ninja-build 是为了减少编译时间(选项)。
  • crossbuild-essential-armhf 是 armv7 目标的工具链包。
  • crossbuild-essential-arm64 是 aarch64 目标的工具链包。
sudo apt 更新 -y
sudo apt 安装 -y \
git \
cmake \
pkgconf \
构建必不可少的\
忍者构建 \
crossbuild-essential-armhf \
交叉构建基本 arm64

如果要启用 Python 3 包装器,也请安装这些包。

sudo apt 安装 -y \
python3-最小 \
python3-numpy

工作文件夹结构

在本教程中,使用以下工作文件夹结构。

/家
+ KMTR - 请替换您的帐户名称。
+ 工作
+ opencv - 源代码,从 GitHub 克隆
+ opencv_contrib - 源代码,从 GitHub 克隆
+ build4-full_arm64 - 工件(用于 aarch64 目标),由 cmake 创建
+ build4-full_armhf - 工件(用于 armhf 目标),由 cmake 创建
  1. 在主目录下创建工作文件夹。
  2. 将 OpenCV 和 OpenCV Contrib 从存储库克隆到工作目录。
cd ~
mkdir 工作
CD作品
git clone --depth=1 https://github.com/opencv/opencv.git
git clone --depth=1 https://github.com/opencv/opencv_contrib.git

更新 apt 和 dpkg 设置

这些步骤在主机上执行。

apt并且是 Ubuntu 和 Debian 中使用的包管理系统。dpkg

以下是使用 MultiArch 的设置步骤。

步骤 1。为 arm64 和 armhf 添加 apt source

执行以在文件末尾添加外部 arch 库。sudo apt edit-sources

示例 1:适用于 Ubuntu 23.04 的 arm64 和 armv7

deb [arch=arm64,armhf] http://ports.ubuntu.com/ubuntu-ports 月球主限制
deb [arch=arm64,armhf] http://ports.ubuntu.com/ubuntu-ports lunar-updates main restricted
deb [arch=arm64,armhf] http://ports.ubuntu.com/ubuntu-ports 月球宇宙
deb [arch=arm64,armhf] http://ports.ubuntu.com/ubuntu-ports 月球更新宇宙
deb [arch=arm64,armhf] http://ports.ubuntu.com/ubuntu-ports 月球多元宇宙
deb [arch=arm64,armhf] http://ports.ubuntu.com/ubuntu-ports 月球更新多元宇宙
deb [arch=arm64,armhf] http://ports.ubuntu.com/ubuntu-ports 月球后港主要受限宇宙多元宇宙
deb [arch=arm64,armhf] http://ports.ubuntu.com/ubuntu-ports 月球安全主要受限制
deb [arch=arm64,armhf] http://ports.ubuntu.com/ubuntu-ports 月球安全宇宙
deb [arch=arm64,armhf] http://ports.ubuntu.com/ubuntu-ports 月球安全多元宇宙

示例 2:适用于 Ubuntu 23.10 的 arm64 和 armv7

deb [arch=arm64,armhf] http://ports.ubuntu.com/ubuntu-ports mantic main restricted
deb [arch=arm64,armhf] http://ports.ubuntu.com/ubuntu-ports mantic-updates main restricted
deb [arch=arm64,armhf] http://ports.ubuntu.com/ubuntu-ports mantic universe
deb [arch=arm64,armhf] http://ports.ubuntu.com/ubuntu-ports mantic-updates universe
deb [arch=arm64,armhf] http://ports.ubuntu.com/ubuntu-ports mantic 多元宇宙
deb [arch=arm64,armhf] http://ports.ubuntu.com/ubuntu-ports mantic-updates 多元宇宙
deb [arch=arm64,armhf] http://ports.ubuntu.com/ubuntu-ports mantic-backports main restricted universe multiverse
deb [arch=arm64,armhf] http://ports.ubuntu.com/ubuntu-ports mantic-security main restricted
deb [arch=arm64,armhf] http://ports.ubuntu.com/ubuntu-ports mantic-security universe
deb [arch=arm64,armhf] http://ports.ubuntu.com/ubuntu-ports mantic-security 多元宇宙

第2步。更新 apt 数据库

更新 apt 数据库以应用新的 apt 源。

执行。sudo apt update

sudo apt 更新

第 3 步。更新 dpkg 设置

更新 dpkg 设置以支持外部架构。

执行和/或 .sudo dpkg --add-architecture arm64sudo dpkg --add-architecture armhf

sudo dpkg --add-architecture arm64
sudo dpkg --add-architecture armhf

sudo dpkg --print-architecture显示了什么是主机体系结构。

sudo dpkg --打印架构
AMD64的

并显示支持哪些外部架构。sudo dpkg --print-foreign-architectures

sudo dpkg --print-foreign-architectures
arm64的
阿姆赫夫

确认工作正常 pkg-config

在 MultiArch 中,每个架构的几个共享库和 pkg-config 信息都存储在 /usr/lib 中。

/usr
+ 库
+ aarch64-linux-gnu - arm64 的共享库
+ pkgconfig - arm64 库的 pkg-config 文件
+ arm-linux-gnueabihf - armhf 的共享库
+ pkgconfig - armhf 库的 pkg-config 文件
+ 分享
+ pkgconfig - pkg-config 文件(用于头文件)

使用 和 选项确认工作。pkg-configPKG_CONFIG_PATHPKG_CONFIG_LIBDIRPKG_CONFIG_SYSROOT_DIR

对于 aarch64:

PKG_CONFIG_PATH=/usr/lib/aarch64-linux-gnu/pkgconfig:/usr/share/pkgconfig \
PKG_CONFIG_LIBDIR=/usr/lib/aarch64-linux-gnu \
PKG_CONFIG_SYSROOT_DIR=/ \
pkg-config --列表-all

对于 ARMv7:

PKG_CONFIG_PATH=/usr/lib/arm-linux-gnueabihf/pkgconfig:/usr/share/pkgconfig \
PKG_CONFIG_LIBDIR=/usr/lib/arm-linux-gnueabihf \
PKG_CONFIG_SYSROOT_DIR=/ \
pkg-config --列表-all

   在线教程

  • 麻省理工学院人工智能视频教程 – 麻省理工人工智能课程
  • 人工智能入门 – 人工智能基础学习。Peter Norvig举办的课程
  • EdX 人工智能 – 此课程讲授人工智能计算机系统设计的基本概念和技术。
  • 人工智能中的计划 – 计划是人工智能系统的基础部分之一。在这个课程中,你将会学习到让机器人执行一系列动作所需要的基本算法。
  • 机器人人工智能 – 这个课程将会教授你实现人工智能的基本方法,包括:概率推算,计划和搜索,本地化,跟踪和控制,全部都是围绕有关机器人设计。
  • 机器学习 – 有指导和无指导情况下的基本机器学习算法
  • 机器学习中的神经网络 – 智能神经网络上的算法和实践经验
  • 斯坦福统计学习

有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓

MultiArch 与 Ubuntu/Debian 的交叉编译(一),ubuntu,debian,linux,人工智能,大模型

MultiArch 与 Ubuntu/Debian 的交叉编译(一),ubuntu,debian,linux,人工智能,大模型

人工智能书籍

  • OpenCV(中文版).(布拉德斯基等)
  • OpenCV+3计算机视觉++Python语言实现+第二版
  • OpenCV3编程入门 毛星云编著
  • 数字图像处理_第三版
  • 人工智能:一种现代的方法
  • 深度学习面试宝典
  • 深度学习之PyTorch物体检测实战
  • 吴恩达DeepLearning.ai中文版笔记
  • 计算机视觉中的多视图几何
  • PyTorch-官方推荐教程-英文版
  • 《神经网络与深度学习》(邱锡鹏-20191121)

  • MultiArch 与 Ubuntu/Debian 的交叉编译(一),ubuntu,debian,linux,人工智能,大模型

第一阶段:零基础入门(3-6个月)

新手应首先通过少而精的学习,看到全景图,建立大局观。 通过完成小实验,建立信心,才能避免“从入门到放弃”的尴尬。因此,第一阶段只推荐4本最必要的书(而且这些书到了第二、三阶段也能继续用),入门以后,在后续学习中再“哪里不会补哪里”即可。

MultiArch 与 Ubuntu/Debian 的交叉编译(一),ubuntu,debian,linux,人工智能,大模型

第二阶段:基础进阶(3-6个月)

熟读《机器学习算法的数学解析与Python实现》并动手实践后,你已经对机器学习有了基本的了解,不再是小白了。这时可以开始触类旁通,学习热门技术,加强实践水平。在深入学习的同时,也可以探索自己感兴趣的方向,为求职面试打好基础。

MultiArch 与 Ubuntu/Debian 的交叉编译(一),ubuntu,debian,linux,人工智能,大模型

第三阶段:工作应用

MultiArch 与 Ubuntu/Debian 的交叉编译(一),ubuntu,debian,linux,人工智能,大模型

这一阶段你已经不再需要引导,只需要一些推荐书目。如果你从入门时就确认了未来的工作方向,可以在第二阶段就提前阅读相关入门书籍(对应“商业落地五大方向”中的前两本),然后再“哪里不会补哪里”。

 有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓

MultiArch 与 Ubuntu/Debian 的交叉编译(一),ubuntu,debian,linux,人工智能,大模型

MultiArch 与 Ubuntu/Debian 的交叉编译(一),ubuntu,debian,linux,人工智能,大模型

MultiArch 与 Ubuntu/Debian 的交叉编译(一),ubuntu,debian,linux,人工智能,大模型

 文章来源地址https://www.toymoban.com/news/detail-801399.html

到了这里,关于MultiArch 与 Ubuntu/Debian 的交叉编译(一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • cuda 安装和卸载 Linux(Ubuntu、debian)详细图解

    cuda需要Nvidia显卡或计算卡,AMD或intel显卡不行(但是也有套他们的标准) 就算是亮机卡也可使用,比如GT710这种 建议使用ubuntu来装,因为cuda就是在这个平台上开发的,当然别的linux系统也行 以下操作在ubuntu server 2204、debian12、debian11中都操作过,如果没有安装linux系统,可以

    2024年02月03日
    浏览(29)
  • 在Linux/Ubuntu/Debian中创建自己的命令快捷方式

    虽然图标快捷方式使你移动鼠标双击就打开目标,但是你还是需要先定位到它。而在终端Terminal中你只需要输入一个自定义命令就能一步到位。 要在 Ubuntu 中创建你自己的命令或别名,你可以使用主目录中的“.bashrc”文件。 以下是创建通过 Wine 运行 Photoshop 的别名的方法:

    2024年03月19日
    浏览(39)
  • Ubuntu/Debian等Linux系统安装微信客户端

    由于本人的工作环境基本是在ubuntu下,而ubuntu使用网页版微信常常会出现无法登陆的现象,为了能够在linux系统用上微信,于是在网上找了找办法,没想到还真有大神做了,特此分享出来。 其实只需要两步即可安装,还是比较简单的: 1、添加仓库(首次使用时,你需要运行

    2024年02月13日
    浏览(44)
  • Linux、Ubuntu、CenterOS、RedHat、Debian、AIpine关系和区别?

    目录 1. 区别和联系 2. 安装命令 3. 其他发行版本 4.参考 Ubuntu, Debian, RedHat, CentOS都是不同的Linux发行版。  Ubuntu 是基于Debian的一个开源GNU/Linux操作系统。它的目标是为一般用户提供一个最新同时又相当稳定,主要以自由软件建构而成的作业系统。Ubuntu目前具有广泛的用户群。

    2024年02月20日
    浏览(21)
  • linux 基于debian_ubuntu AB系统适配(三)- overlayroot

    Overlayroot是一个实用工具,允许您创建一个只读的根文件系统和一个可写的覆盖文件系统。这对于创建一个更安全和稳定的系统很有用,因为对系统所做的任何更改都将存储在覆盖文件系统中,可以很容易地丢弃或重置。 在Debian下,分离的系统在 /userdata/rootfs_overlay 下,如:

    2024年02月15日
    浏览(29)
  • linux debian/ubuntu RTL8111/8168/8411网卡驱动怎么正确安装?

    或者云盘链接 链接: https://pan.baidu.com/s/1B0USXWRpAM9vQxSnKfo8yw?pwd=2swj 提取码: 2swj 复制这段内容后打开百度网盘手机App,操作更方便哦 sudo rmmod r8169 或其他原驱动名字 解压 编译 安装驱动:可能没有执行脚本权限,先赋权限,执行完毕后重启 重启

    2024年02月16日
    浏览(26)
  • linux 基于debian_ubuntu AB系统适配(四)- 硬盘 wifi U盘无法使用问题

    使用原系统可以使用,但AB系统缺不行,开始怀疑是文件系统问题,于是我把AB系统的文件系统给替换到原系统中去,结果一样可以使用。于是替换了内核文件,结果不能使用了,那问题就出现在了内核中,刚开始以为是设备树的问题,于是拿原系统的设备树与AB系统的设备树

    2024年02月15日
    浏览(32)
  • Ubuntu上搭建ARM Linux GCC交叉编译环境

    在Ubuntu操作系统上搭建ARM Linux GCC交叉编译环境是为了能够在x86架构的主机上编译运行适用于ARM架构的程序。本文将介绍详细的步骤以及相应的源代码。 安装必要的软件包 首先,我们需要安装一些必要的软件包,包括GCC、GNU Binutils和GDB。打开终端,运行以下命令来安装这些软

    2024年02月02日
    浏览(35)
  • debian和ubuntu

    Debian和Ubuntu是两种流行的Linux发行版,它们之间有密切的关系,但也存在一些重要的区别。 关系 : Ubuntu是基于Debian创建的。这意味着Ubuntu使用与Debian相同的APT包管理系统,并共享来自Debian库中的大量包和库。 区别 : 发布周期 :Ubuntu有两种发布版本:LTS(长期支持)和常规

    2024年02月06日
    浏览(33)
  • linux_centos7.9/ubuntu20.04/debian12.1.0_下载镜像及百度网盘分享链接

    网易开源镜像:http://mirrors.163.com/ 搜狐开源镜像:http://mirrors.sohu.com/ 阿里开源镜像:https://developer.aliyun.com/mirror/ 首都在线科技股份有限公司:http://mirrors.yun-idc.com/ 常州贝特康姆软件技术有限公司(原cn99):http://centos.bitcomm.cn/ 上海交大开源镜像:http://ftp.sjtu.edu.cn/ 浙江大学:

    2024年02月10日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包