您现在的位置是:热点 >>正文
使用Docker多阶段多平台编译Qt
热点246791人已围观
简介...
Docker 中的多平台如何工作?
在 Docker 中使用多平台功能的最简单方法是从命令行调用它。使用docker buildx,我们可以利用新的测试版功能。通过运行docker buildx使用 build --platform linux/arm/v7 -t arm-build 。此命令使用 ARMv7 仿真根据当前目录中的“Dockerfile”构建 docker 映像。在幕后,Docker 在 QDoEMU 虚拟化环境(qemu-user-static准确地说)中运行整个 Docker 构建过程。通过这样做,可以消除设置自定义 VM 的复杂性。一旦构建完成,我们甚至可以使用docker runckARMv7 模式自动启动容器。
多平台、多阶段和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/li使用b
COPY --from=builder /lib/ /sysroot/lib/
COPY --from=builder /usr/include/ /sysroot/usr/include/
COPYDo --from=builder /usr/lib/ /sysroot/usr/lib/
COPY --from=builder /opt/vc/ sysroot/opt/vc/
我们现在拥有两全其美的优势ck。通过利用多步骤和多平台功能,我们生成了一个可用于构建 Qt 的 sysroot。由于我们在上一步中使用了功能齐全的 Raspbian 映像,我们甚至可以让 Qt 获取所有现有的库。
./configure \
&ernbsp; -sysroot /sysroot
正如我们在介绍中提到的,编译 Qt 远非简单。成功编译它需要很多步骤。
Tags:
相关文章
标签: 问界M8 问界M8Max 华为乾崑ADS4 增程长续航
热点撰文 | 李信马 题图 | 问界 新能源汽车行业蓬勃发展。2025年,中国新能源汽车销量达到1649万辆,同比增长28.2%,连续11年位居全球第一。其中,高端家庭SUV成为各大车企展示技术实力和品牌...
【热点】
阅读更多中国信通院:2024年中国人工智能产业规模将突破9000亿元
热点在9月23日举行的2025人工智能产业及赋能新型工业化大会上,中国信息通信研发布了关于我国人工智能产业规模的测算成果。根据最新数据,预计到2024年,中国的人工智能产业规模将超过9000亿元人民币,较...
【热点】
阅读更多英伟达 CEO 黄仁勋确认投资马斯克初创公司 xAI
热点近日,英伟达首席执行官黄仁勋在一次采访中确认,英伟达已经对埃隆・马斯克的新创公司 xAI 进行了投资。黄仁勋表示,他对 xAI 正在进行的融资情况感到非常兴奋,同时表达了希望参与马斯克所涉足的几乎所有...
【热点】
阅读更多
热门文章
最新文章
友情链接
- 标签: 康师傅
- https://www.theaerogroup.net/?cat=28&s=谷歌外推代发【tg:seogoogle987】,e7L
- https://www.tombow.com/search/谷歌外推代发【tg:seogoogle987】,hh8
- https://www.wheels24.gr/?action=CHECK&s=谷歌外推代发【tg:seogoogle987】,p0U
- https://www.roblox.com/discover/?cat=107&Keyword=谷歌外推代发【tg:seogoogle987】,lbQ
- https://www.pierreherme.com/catalogsearch/result/?q=谷歌外推代发【tg:seogoogle987】,crZ
- https://www.seagrant.wisc.edu/?page=63&s=谷歌外推代发【tg:seogoogle987】,QUm
- https://www.abbreviations.com/谷歌外推代发【tg:seogoogle987】36F
- https://www.skicheck.at/en/?action=CHECK&s=谷歌外推代发【tg:seogoogle987】,Oyr
- https://www.urmc.rochester.edu/news/search?q=谷歌外推代发【tg:seogoogle987】,9fL
- https://www.teamlab.art/?submit=谷歌外推代发【tg:seogoogle987】,YKA
- https://www.zutari.com/search/谷歌外推代发【tg:seogoogle987】,WL3
- https://www.jusoen.com/addreng.asp?p1=谷歌外推代发【tg:seogoogle987】s3w
- https://www.localfootdoc.com/?s=谷歌外推代发【tg:seogoogle987】,5Dk
- https://nicolazzi.it/en/?s=谷歌外推代发【tg:seogoogle987】,CRO
- https://www.le-trend.com/en/search/=谷歌外推代发【tg:seogoogle987】,kcm
- https://www.lenovo.com/gb/en/search?action=SEARCH&text=谷歌外推代发【tg:seogoogle987】,uVu
- https://www.kingston.gov.uk/site-search/results/?q=谷歌外推代发【tg:seogoogle987】,30P
- https://www.krisinformation.se/en/search?q=谷歌外推代发【tg:seogoogle987】,eGM
- https://www.kores.com/?s=谷歌外推代发【tg:seogoogle987】,ykq
- https://www.openspaceinstitute.org/search?q=谷歌外推代发【tg:seogoogle987】,U58
- https://www.resilienz-akademie.com/?cat=71&s=谷歌外推代发【tg:seogoogle987】,ABy
- https://www.rockngem.com/?action=CHECK&s=谷歌外推代发【tg:seogoogle987】,bVt
- https://www.kuaikanmanhua.com/sou/谷歌外推代发【tg:seogoogle987】,GdD
- https://www.ushmm.org/search/results/?ID=8s0587Oi8UTv74zPPM4fuhwjNpe2hsEE&q=谷歌外推代发【tg:seogoogle987】,WNS
- https://www.vivaraise.fr/catalogsearch/result/?q=谷歌外推代发【tg:seogoogle987】,i7u
- https://www.lssystems.co.uk/search?page=0&per_page=24&term=谷歌外推代发【tg:seogoogle987】,UxG
- https://search.danawa.com/dsearch.php?query=谷歌外推代发【tg:seogoogle987】l6d
- https://5gaa.org/?token=6e2l7hjt2i26gzgctgwdrv7v0j6nxorq&s=谷歌外推代发【tg:seogoogle987】Uui
- https://www.dba.dk/soeg/?soeg=谷歌外推代发【tg:seogoogle987】yIB
- https://www.vietnamconsulate-sf.org/?action=CHECK&s=谷歌外推代发【tg:seogoogle987】,I3C
- https://www.maine.gov/pfr/professionallicensing/search/node?keys=谷歌外推代发【tg:seogoogle987】,lao
- https://www.nonsolocap.it/cap?action=SEARCH&k=谷歌外推代发【tg:seogoogle987】,Z95
- https://www.riohondo.edu/?action=QUERY&s=谷歌外推代发【tg:seogoogle987】,7LA
- https://www.mi.com/search?keyword=谷歌外推代发【tg:seogoogle987】,5gi
- https://www.woorden.org/spreekwoord.php?woord=谷歌外推代发【tg:seogoogle987】,UxE
- https://www.niaogebiji.com/pc/article/search?keyword=谷歌外推代发【tg:seogoogle987】,DAA
- https://wydden.com/?ID=r8w9WMSKWkOcmiaFWaUv0dzMdqZWfKtF&s=谷歌外推代发【tg:seogoogle987】,TxQ
- https://www.swanagerailway.co.uk/search?q=谷歌外推代发【tg:seogoogle987】,3xk
- https://www.duksung.ac.kr/search/front/Search.jsp?qt=谷歌外推代发【tg:seogoogle987】1Mf
- https://hsmoa.com/search?query=谷歌外推代发【tg:seogoogle987】CqQ
- https://www.paxnet.co.kr/search/jongmok?kwd=谷歌外推代发【tg:seogoogle987】86v
- https://www.voices.com/talents/search?keywords=谷歌外推代发【tg:seogoogle987】,Y3Y
- https://www.hanbat.ac.kr/search/front/Search.jsp?qt=谷歌外推代发【tg:seogoogle987】W0Z
- https://www.teamlab.art/zh-hans/?submit=谷歌外推代发【tg:seogoogle987】,CRU
- https://www.teamlab.art/it/?submit=谷歌外推代发【tg:seogoogle987】,WN3
- https://www.u-bourgogne.fr/?cat=117&s=谷歌外推代发【tg:seogoogle987】,yFo
- https://www.smarty.net/search?q=谷歌外推代发【tg:seogoogle987】,HYO
- https://www.lindseymedicalsupply.com/search/谷歌外推代发【tg:seogoogle987】,JQA
- https://blvdseafood.com/?s=谷歌外推代发【tg:seogoogle987】W4S
- https://www.ussalabama.com/?action=CHECK&s=谷歌外推代发【tg:seogoogle987】,V46