您现在的位置是:热点 >>正文
使用Docker多阶段多平台编译Qt
热点977人已围观
简介...
Docker 中的多平台如何工作?
在 Docker 中使用多平台功能的最简单方法是从命令行调用它。使用docker buildx,我们可以利用新的测试版功能。通过运行docker buildx使用 build --platform linux/arm/v7 -t arm-build 。此命令使用 ARMv7 仿真根据当前目录中的“Dockerfile”构建 docker 映像。在幕后,Docker 在 QEMDoU 虚拟化环境(qemu-user-static准确地说)中运行整个 Docker 构建过程。通过这样做,可以消除设置自定义 VM 的复杂性。一旦构建完成,我们甚至可以使用docker runARMvck7 模式自动启动容器。
多平台、多阶段和Qt
虽然多平台功能是一个很棒的独立功能,但与多阶段构建结合使用时它会变得更加强大。在单个 Dockerfile 中,我们能够混合和匹配平台并在步骤之间进行复制er。这个功能正是我们最终为 Screenly OSE 使用 Qt 构建过程所做的。
第一阶段:ARM
感谢Balena的优秀人员,我们能够在第一阶段使用 Raspbian 基础映像。我们可以使用以下方法调用此步多阶骤:
FROM --platform=linux/arm/v7 balenalib/rpi-raspbian:buster as builder
在上述步骤之后,我们可以像往常一样使用 Docker 并执行各段多种RUN命令,例如安装包等。请注意,如果构建不是在 ARMv7 硬件上运行,则此容器正在使用 QEMU 模拟运行。在我们的例子中,我们使用命令来安装 Qt 构建依赖项。上述步骤还允许我们完全消除从磁盘映平台像(这是Qt Wiki建议的)或rsync物理 Raspberry Pi 的文件复制文件的需要。
第 2 阶段:x86
一旦我们在 ARM 步骤中安装了依赖项,我们就可以切换到构建器的原生 x86 架构以避编译免仿真,并使用以下行进行交叉编译:
FROM --platform=linux/amd64 debian:buster
现在,我们进入了有趣的部分。切换到 x86 后,我们可以复制上一步中的文件。我Qt们这样做是为了创建一个可用于 Qt 的 sysroot。我们通过运行以下命令来完成此步骤:
RUN mkdir -p /sysroot/usr /sysroot/opt /sysroot/lib
COP使用Y --from=builder /lib/ /sysroot/lib/
COPY --from=builder /usr/include/ /sysroot/usr/include/
COPY --fDorom=builder /usr/lib/ /sysroot/usr/lib/
COPY --from=builder /opt/vc/ sysroot/opt/vc/
我们现在拥有两全其美的优势ck。通过利用多步骤和多平台功能,我们生成了一个可用于构建 Qt 的 sysroot。由于我们在上一步中使用了功能齐全的 Raspbian 映像,我们甚至可以让 Qt 获取所有现有的库。
./configerure \
-sysroot /sysroot
正如我们在介绍中提到的,编译 Qt 远非简单。成功编译它需要很多步骤。
Tags:
相关文章
Docker+Wasm 技术预览简介
热点什么是 Wasm? WebAssembly,通常简称为 Wasm,是一种相对较新的技术,允许您编译用 40 多种语言(包括 Rust、C、C++、JavaScript 和 Golang)编写的应用程序...
【热点】
阅读更多CNCF 报告:最新 Kubernetes 和容器采用现状 译文
热点几年前,当Docker 刚刚兴起时,我们预测容器最终会成为大热门。到 2022 年,这个预测毫无疑问地成为了现实。Docker 引发了一场改变计算的容器革命。 Gartner 预测,到 2023 年,...
【热点】
阅读更多标签: 薇美铺 WeMakePrice 趣天Qoo10 电商平台
热点云梦级11月12日云梦级消息,据韩联社报道,当地时间10日,韩国首尔的一家法院裁定,因欠款问题陷入困境的电商平台——薇美铺WeMakePrice正式破产。 据报道,去年7月底,薇美铺向法院申请启动重整...
【热点】
阅读更多
热门文章
最新文章
友情链接
- 标签: 康师傅
- 一代芯片巨头即将陨落,英特尔:很抱歉,你被淘汰了!
- 标签: Meta 扎克伯格 Llama4 Avocado
- 360发布全球首款L2-L4全栈智能体平台!政企AI转型迎来“开箱即用”时代
- 标签: 阿科玛 涂料解决方案 粘合剂解决方案 MBS
- 亚马逊斥资10亿美元争夺美橄榄球联盟独家转播权
- 云安全日报211116:Ubuntu vim编辑器发现执行任意代码漏洞,需要尽快升级
- IDC 2022 全球CSO网络安全大会将于6月首次落地中国
- 云计算核心技术Docker教程:Docker 守护进程dockerd的LCOW选项
- 标签: 小马智行 Robotaxi 港股上市 自动驾驶
- Facebook发起新一轮广告造势:侧面抨击苹果隐私政策