使用Docker多阶段多平台编译Qt
Docker 中的多平台如何工作?
在 Docker 中使用多平台功能的最简单方法是从命令行调用它。使用docker buildx,我们可以利用新的测试版功能。通过运行docker buildx使用 build --platform linux/arm/v7 -t arm-build 。此命令使用 ARMv7 仿真根据当前目录中的“Dockerfile”构建 docker 映像。在幕后,Docker 在 QEDoMU 虚拟化环境(qemu-user-static准确地说)中运行整个 Docker 构建过程。通过这样做,可以消除设置自定义 VM 的复杂性。一旦构建完成,我们甚至可以使用docker runARckMv7 模式自动启动容器。
多平台、多阶段和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
COPY --使用from=builder /lib/ /sysroot/lib/
COPY --from=builder /usr/include/ /sysroot/usr/include/
COPY --fromDo=builder /usr/lib/ /sysroot/usr/lib/
COPY --from=builder /opt/vc/ sysroot/opt/vc/
我们现在拥有两全其美的优势。通过利ck用多步骤和多平台功能,我们生成了一个可用于构建 Qt 的 sysroot。由于我们在上一步中使用了功能齐全的 Raspbian 映像,我们甚至可以让 Qt 获取所有现有的库。
./configureer \
-sysroot /sysroot
正如我们在介绍中提到的,编译 Qt 远非简单。成功编译它需要很多步骤。
(责任编辑:网络安全)
-
牛皮凉席能用多少年-业百科牛皮凉席正常使用,可用10年或20年以上。牛皮凉席是指采用头层水牛皮作为原料,采用对人身体无毒害作用的鞣质原料,结合先进的鞣质工艺制作的水牛皮凉。牛皮凉席可以用多久?牛皮凉席...[详细]
-
云梦级11月18日云梦级消息,蚂蚁集团今日官宣推出全模态通用 AI 助手“灵光”。该助手支持“自然语言 30 秒生成小应用”,同时它也是“业内首个全代码生成多模态内容的 AI 助手”,支持 3D 数字...[详细]
-
在最近的2025财年第四季度财报电话会议上,苹果公司首席执行官蒂姆・库克表示,苹果仍然开放于在人工智能领域进行收购和合作。他提到,苹果正在积极推进下一代人工智能助手 Siri 的开发,并计划于2026...[详细]
-
云梦级3月27日云梦级消息,今日,传音控股公告称,2025 年营业收入 655.91 亿元,同比下降 4.55%。净利润 25.81 亿元,同比下降 53.49%。 公告称,其主要原因是:(1)受市场...[详细]
-
让Transformer的推理速度提高4.5倍,这个trick还能给你省十几万
本文经AI新媒体量子位(公众号ID:QbitAI)授权转载,转载请联系出处。 最近,NLP明星公司Hugging Face发布了一个叫做Infinity的产品,可以以1ms延时完成Transforme...[详细]
-
1-5月中国规模以上互联网和相关服务企业业务收入同比增长24.4%
6月30日消息,据工信部公布的数据显示,1-5月,中国规模以上互联网和相关服务企业完成业务收入5981亿元,同比增长达24.4%,增速同比提高9.5个百分点,较1-4月回落3.4个百分点。 1-5月,...[详细]
-
2020年9月,中国在联合国大会上向世界宣布了2030年前实现碳达峰、2060年前实现碳中和的目标。实现碳达峰、碳中和,是我国实现可持续性高质量发展的内在要求,是一场广泛而深刻的经济社会系统性变革。...[详细]
-
描述 Python min() 方法返回字符串中最小的字母。 语法 以下是 min() 方法语法: min(str) 参数 str -- 字符串。 返回值 返回字符串中最小的字母。 实例 以下实例展示...[详细]
-
AI赛车手狂虐人类登Nature!1000台PS4训练,极限超车独霸赛道
高能力的AI在各种游戏中打败人类,这些消息近年来频频出现。 不管是早年的国际象棋、问答比赛,还是近年的围棋、星际争霸、刀塔2。 在AI选手面前,人类的专业选手简直被打到要哭。 今日,AI赛车手再次战胜...[详细]
-
新浪科技讯 北京时间2月14日早间消息,据报道,亚马逊和Spotify考虑竞购播客服务提供商Audioboom,该公司在英国伦敦上市,大流行期间营收和股价均有攀升。 据报道,亚马逊和Spotify最近...[详细]

OSWorld-MCP:全新评测基准助力计算机代理产品发展
Google Earth AI“地球大脑”上线!Gemini一键预测洪水、藻华、野火,全球灾害预警从数周缩短至几分钟
标签: 飞速创新 港股上市 企业网络解决方案 高性能网络
为什么要学数据结构?
标签: Pinnacle Marine 港口工作船 海事服务 新加坡
