当前位置:首页 > 科技  > 知识百科

使用Docker多阶段多平台编译Qt

来源: 责编: 时间:2023-08-07 16:30:40 302观看
导读 Docker 中的多平台如何工作?
在 Docker 中使用多平台功能的最简单方法是从命令行调用它。使用docker buildx,我们可以利用新的测试版功能。通过运行docker buildx build --pla

Docker 中的多平台如何工作?
在 Docker 中使用多平台功能的最简单方法是从命令行调用它。使用docker buildx,我们可以利用新的测试版功能。通过运行docker buildx build --platform linux/arm/v7 -t arm-build 。此命令使用 ARMv7 仿真根据当前目录中的“Dockerfile”构建 docker 映像。在幕后,Docker 在 QEMU 虚拟化环境(qemu-user-static准确地说)中运行整个 Docker 构建过程。通过这样做,可以消除设置自定义 VM 的复杂性。一旦构建完成,我们甚至可以使用docker runARMv7 模式自动启动容器。Lu628资讯网——每日最新资讯28at.com

多平台、多阶段和Qt
虽然多平台功能是一个很棒的独立功能,但与多阶段构建结合使用时它会变得更加强大。在单个 Dockerfile 中,我们能够混合和匹配平台并在步骤之间进行复制。这个功能正是我们最终为 Screenly OSE 使用 Qt 构建过程所做的。Lu628资讯网——每日最新资讯28at.com

第一阶段:ARMLu628资讯网——每日最新资讯28at.com

感谢Balena的优秀人员,我们能够在第一阶段使用 Raspbian 基础映像。我们可以使用以下方法调用此步骤:Lu628资讯网——每日最新资讯28at.com

FROM --platform=linux/arm/v7 balenalib/rpi-raspbian:buster as builder
在上述步骤之后,我们可以像往常一样使用 Docker 并执行各种RUN命令,例如安装包等。请注意,如果构建不是在 ARMv7 硬件上运行,则此容器正在使用 QEMU 模拟运行。在我们的例子中,我们使用命令来安装 Qt 构建依赖项。上述步骤还允许我们完全消除从磁盘映像(这是Qt Wiki建议的)或rsync物理 Raspberry Pi 的文件复制文件的需要。Lu628资讯网——每日最新资讯28at.com

第 2 阶段:x86Lu628资讯网——每日最新资讯28at.com

一旦我们在 ARM 步骤中安装了依赖项,我们就可以切换到构建器的原生 x86 架构以避免仿真,并使用以下行进行交叉编译:Lu628资讯网——每日最新资讯28at.com

FROM --platform=linux/amd64 debian:buster
现在,我们进入了有趣的部分。切换到 x86 后,我们可以复制上一步中的文件。我们这样做是为了创建一个可用于 Qt 的 sysroot。我们通过运行以下命令来完成此步骤:Lu628资讯网——每日最新资讯28at.com

RUN mkdir -p /sysroot/usr /sysroot/opt /sysroot/libLu628资讯网——每日最新资讯28at.com

COPY --from=builder /lib/ /sysroot/lib/Lu628资讯网——每日最新资讯28at.com

COPY --from=builder /usr/include/ /sysroot/usr/include/Lu628资讯网——每日最新资讯28at.com

COPY --from=builder /usr/lib/ /sysroot/usr/lib/Lu628资讯网——每日最新资讯28at.com

COPY --from=builder /opt/vc/ sysroot/opt/vc/
我们现在拥有两全其美的优势。通过利用多步骤和多平台功能,我们生成了一个可用于构建 Qt 的 sysroot。由于我们在上一步中使用了功能齐全的 Raspbian 映像,我们甚至可以让 Qt 获取所有现有的库。Lu628资讯网——每日最新资讯28at.com

./configure /
      -sysroot /sysroot
正如我们在介绍中提到的,编译 Qt 远非简单。成功编译它需要很多步骤。Lu628资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-119-2501-0.html使用Docker多阶段多平台编译Qt

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: Salesforce联合首席执行官将辞职 贝尼奥夫将再次独掌公司

下一篇: Docker使用缓存编译 Qt

标签:
  • 热门焦点
  • 红魔电竞平板评测:大屏幕硬实力

    前言:三年的疫情因为要上网课的原因激活了平板市场,如今网课的时代已经过去,大家的生活都恢复到了正轨,这也就意味着,真正考验平板电脑生存的环境来了。也就是面对着这种残酷的
  • 6月安卓手机性能榜:vivo/iQOO霸占旗舰排行榜前三

    2023年上半年已经正式过去了,我们也迎来了安兔兔V10版本,在新的骁龙8Gen3和天玑9300发布之前,性能榜的榜单大体会以骁龙8Gen2和天玑9200+为主,至于那颗3.36GHz的骁龙8Gen2领先
  • 28个SpringBoot项目中常用注解,日常开发、求职面试不再懵圈

    前言在使用SpringBoot开发中或者在求职面试中都会使用到很多注解或者问到注解相关的知识。本文主要对一些常用的注解进行了总结,同时也会举出具体例子,供大家学习和参考。注解
  • 雅柏威士忌多款单品价格大跌,泥煤顶流也不香了?

    来源 | 烈酒商业观察编 | 肖海林今年以来,威士忌市场开始出现了降温迹象,越来越多不断暴涨的网红威士忌也开始悄然回归市场理性。近日,LVMH集团旗下苏格兰威士忌品牌雅柏(Ardbeg
  • 2023年,我眼中的字节跳动

    此时此刻(2023年7月),字节跳动从未上市,也从未公布过任何官方的上市计划;但是这并不妨碍它成为中国最受关注的互联网公司之一。从2016-17年的抖音强势崛起,到2018年的“头腾
  • Temu起诉SHEIN,跨境电商战事升级

    来源 | 伯虎财经(bohuFN)作者 | 陈平安日前据外媒报道,拼多多旗下跨境电商平台Temu正对竞争对手SHEIN提起新诉讼,诉状称Shein“利用市场支配力量强迫服装厂商与之签订独家
  • 三星电子Q2营收60万亿韩元 存储业务营收同比仍下滑超过50%

    7月27日消息,据外媒报道,从三星电子所发布的财报来看,他们主要利润来源的存储芯片业务在今年二季度仍不乐观,营收同比仍在大幅下滑,所在的设备解决方案
  • iQOO 11S新品发布会

    iQOO将在7月4日19:00举行新品发布会,推出杭州亚运会电竞赛事官方用机iQOO 11S。
  • Android 14发布:首批适配机型公布

    5月11日消息,谷歌在今天凌晨举行了I/O大会,本次发布会谷歌带来了自家的AI语言模型PaLM 2、谷歌Pixel Fold折叠屏、谷歌Pixel 7a手机,同时发布了Androi
Top