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

AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

標簽:
  • 熱門焦點
  • 鴻蒙OS 4.0公測機型公布:甚至連nova6都支持

    華為全新的HarmonyOS 4.0操作系統將于今天下午正式登場,官方在發布會之前也已經正式給出了可升級的機型產品,這意味著這些機型會率先支持升級享用。這次的HarmonyOS 4.0支持
  • K60至尊版狂暴引擎2.0加持:超177萬跑分斬獲性能第一

    Redmi的后性能時代戰略發布會今天下午如期舉辦,在本次發布會上,Redmi公布了多項關于和聯發科的深度合作,以及新機K60 Ultra在軟件和硬件方面的特性,例如:“K60 至尊版,雙芯旗艦
  • 0糖0卡0脂 旭日森林仙草烏龍茶優惠:15瓶到手29元

    旭日森林無糖仙草烏龍茶510ml*15瓶平時要賣為79.9元,今日下單領取50元優惠券,到手價為29.9元。產品規格:0糖0卡0脂,添加草本仙草汁,清涼爽口,富含茶多酚,保留
  • 一篇聊聊Go錯誤封裝機制

    %w 是用于錯誤包裝(Error Wrapping)的格式化動詞。它是用于 fmt.Errorf 和 fmt.Sprintf 函數中的一個特殊格式化動詞,用于將一個錯誤(或其他可打印的值)包裝在一個新的錯誤中。使
  • 虛擬鍵盤 API 的妙用

    你是否在遇到過這樣的問題:移動設備上有一個固定元素,當激活虛擬鍵盤時,該元素被隱藏在了鍵盤下方?多年來,這一直是 Web 上的默認行為,在本文中,我們將探討這個問題、為什么會發生
  • 重估百度丨“晚熟”的百度云,能等到春天嗎?

    ©自象限原創作者|程心排版|王喻可2016年7月13日,百度云計算戰略發布會在北京舉行,宣告著百度智能云的正式啟程。彼時的會場座無虛席,甚至排隊排到了門外,在場的所有人幾乎都
  • 慕巖炮轟抖音,百合網今何在?

    來源:價值研究所 作者:Hernanderz“難道就因為自己的一個產品牛逼了,從客服到總裁,都不愿意正視自己產品和運營上的問題,選擇逃避了嗎?”這一番話,出自百合網聯合創
  • 共享單車的故事講到哪了?

    來源丨海克財經與共享充電寶相差不多,共享單車已很久沒有被國內熱點新聞關照到了。除了一再漲價和用戶直呼用不起了。近日多家媒體再發報道稱,成都、天津、鄭州等地多個共享單
  • 2299元起!iQOO Pad明晚首銷:性能最強天璣平板

    5月23日,iQOO如期舉行了新品發布會,除了首發安卓最強旗艦處理器的iQOO Neo8系列新機外,還在發布會上推出了旗下首款平板電腦——iQOO Pad,其最大的賣點
Top