在 Docker 中使用多平臺功能的最簡單方法是從命令行調用它。使用docker buildx,我們可以利用新的測試版功能。通過運行docker buildx build --pla" />

日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 知識百科

使用Docker多階段多平臺編譯Qt

來源: 責編: 時間:2023-08-07 16:30:40 240觀看
導讀 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 模式自動啟動容器。m7W28資訊網——每日最新資訊28at.com

多平臺、多階段和Qt
雖然多平臺功能是一個很棒的獨立功能,但與多階段構建結合使用時它會變得更加強大。在單個 Dockerfile 中,我們能夠混合和匹配平臺并在步驟之間進行復制。這個功能正是我們最終為 Screenly OSE 使用 Qt 構建過程所做的。m7W28資訊網——每日最新資訊28at.com

第一階段:ARMm7W28資訊網——每日最新資訊28at.com

感謝Balena的優秀人員,我們能夠在第一階段使用 Raspbian 基礎映像。我們可以使用以下方法調用此步驟:m7W28資訊網——每日最新資訊28at.com

FROM --platform=linux/arm/v7 balenalib/rpi-raspbian:buster as builder
在上述步驟之后,我們可以像往常一樣使用 Docker 并執行各種RUN命令,例如安裝包等。請注意,如果構建不是在 ARMv7 硬件上運行,則此容器正在使用 QEMU 模擬運行。在我們的例子中,我們使用命令來安裝 Qt 構建依賴項。上述步驟還允許我們完全消除從磁盤映像(這是Qt Wiki建議的)或rsync物理 Raspberry Pi 的文件復制文件的需要。m7W28資訊網——每日最新資訊28at.com

第 2 階段:x86m7W28資訊網——每日最新資訊28at.com

一旦我們在 ARM 步驟中安裝了依賴項,我們就可以切換到構建器的原生 x86 架構以避免仿真,并使用以下行進行交叉編譯:m7W28資訊網——每日最新資訊28at.com

FROM --platform=linux/amd64 debian:buster
現在,我們進入了有趣的部分。切換到 x86 后,我們可以復制上一步中的文件。我們這樣做是為了創建一個可用于 Qt 的 sysroot。我們通過運行以下命令來完成此步驟:m7W28資訊網——每日最新資訊28at.com

RUN mkdir -p /sysroot/usr /sysroot/opt /sysroot/libm7W28資訊網——每日最新資訊28at.com

COPY --from=builder /lib/ /sysroot/lib/m7W28資訊網——每日最新資訊28at.com

COPY --from=builder /usr/include/ /sysroot/usr/include/m7W28資訊網——每日最新資訊28at.com

COPY --from=builder /usr/lib/ /sysroot/usr/lib/m7W28資訊網——每日最新資訊28at.com

COPY --from=builder /opt/vc/ sysroot/opt/vc/
我們現在擁有兩全其美的優勢。通過利用多步驟和多平臺功能,我們生成了一個可用于構建 Qt 的 sysroot。由于我們在上一步中使用了功能齊全的 Raspbian 映像,我們甚至可以讓 Qt 獲取所有現有的庫。m7W28資訊網——每日最新資訊28at.com

./configure /
      -sysroot /sysroot
正如我們在介紹中提到的,編譯 Qt 遠非簡單。成功編譯它需要很多步驟。m7W28資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-119-2501-0.html使用Docker多階段多平臺編譯Qt

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: Salesforce聯合首席執行官將辭職 貝尼奧夫將再次獨掌公司

下一篇: Docker使用緩存編譯 Qt

標簽:
  • 熱門焦點
Top 主站蜘蛛池模板: 治县。| 鄂尔多斯市| 永康市| 铜陵市| 始兴县| 贞丰县| 浪卡子县| 三亚市| 黎川县| 桦甸市| 伽师县| 孟津县| 浪卡子县| 平原县| 梁河县| 准格尔旗| 岗巴县| 怀仁县| 隆回县| 海南省| 绥德县| 丰台区| 海晏县| 云林县| 三江| 大关县| 丹寨县| 安岳县| 丰顺县| 杭州市| 巴林左旗| 博乐市| 卢氏县| 漳州市| 柘荣县| 隆子县| 桓台县| 汉源县| 家居| 平南县| 镇原县|