news 2026/5/8 17:48:56

如何使用Docker交叉编译Qt Linux包

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何使用Docker交叉编译Qt Linux包

大家好,这里Aaron。最近在和荣耀做音频易Studio的适配工作遇到了一个需求,需要基于Ubuntu 22.04版本编译软件的ARM64 deb包。我的软件是基于开源Qt的产品,刚开始也是想都没想去VMWare装了个Ubuntu 26.04版本,编译出来反馈Ubuntu版本太高需要降版本。搜遍Ubuntu官网只找到ARM的服务器版本22.04,这个时候去翻了一下Docker发现有22.04镜像,于是利用1panel代理加速把22.04包拉下来了。

启动Docker容器

启动镜像可以通过以下命令直接打开bash命令行:

docker run -it --rm -v "/Users/XXXX/Desktop/Workspace/audioeasestudio:/workspace" -w /workspace audioeasestudio-dev:latest bash

因为Docker容器是无状态的,每次重启镜像都会清空里面的所有依赖,所以自己写了个Dockerfile,可以供大家参考。

Dockerfile

FROM docker.1panel.live/library/ubuntu:22.04 ENV DEBIAN_FRONTEND=noninteractive # Switch to Tsinghua apt mirror (using http to avoid SSL issues in base image) RUN sed -i 's|http://ports.ubuntu.com/ubuntu-ports|http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports|g' /etc/apt/sources.list && \ apt-get update && \ apt-get install -y --no-install-recommends \ ca-certificates \ wget \ gnupg \ build-essential \ cmake \ ninja-build \ libgl1-mesa-dev \ libglu1-mesa-dev \ libxkbcommon-x11-dev \ libxcb-cursor-dev \ libxcb-icccm4-dev \ libxcb-image0-dev \ libxcb-keysyms1-dev \ libxcb-randr0-dev \ libxcb-shape0-dev \ libxcb-shm0-dev \ libxcb-sync-dev \ libxcb-util-dev \ libxcb-xfixes0-dev \ libxcb-xinerama0-dev \ libxcb-xkb-dev \ libxcb-dri3-dev \ libx11-xcb-dev \ libxcb-dri2-0-dev \ libxcb-glx0-dev \ libxcb-present-dev \ libxcb-composite0-dev \ libxcb-ewmh-dev \ libxcb-res0-dev \ libfontconfig1-dev \ libfreetype6-dev \ libdbus-1-dev \ libssl-dev \ libpulse-dev \ libasound2-dev \ libjack-jackd2-dev \ libpipewire-0.3-dev \ libsndfile1-dev \ libflac-dev \ libmp3lame-dev \ libvorbis-dev \ libogg-dev \ libopus-dev \ libsamplerate0-dev \ libsqlite3-dev \ libsystemd-dev \ libudev-dev \ libinput-dev \ libts-dev \ libmtdev-dev \ libjpeg-dev \ libpng-dev \ libtiff-dev \ libwebp-dev \ libharfbuzz-dev \ libpcre2-dev \ libdouble-conversion-dev \ libmd4c-dev \ pkg-config \ git \ ccache \ clang \ lld \ llvm \ gdb \ valgrind \ && \ apt-get install -y --no-install-recommends \ qt6-base-dev \ qt6-base-dev-tools \ qt6-tools-dev \ qt6-tools-dev-tools \ qt6-l10n-tools \ libqt6opengl6-dev \ qt6-multimedia-dev \ libqt6svg6-dev \ qt6-wayland \ libqt6sql6-sqlite \ && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* CMD ["/bin/bash"]

配置Qt Creator连接Docker

Docker环境配完了,下一步就是如何把Qt Creator连接上容器。巧的是Qt Creator中有Docker插件,可以通过Qt Creator连接Docker镜像。

步骤1:启用Docker插件

在Qt Creator中,进入关于插件搜索Docker并勾选,然后点击确定。

步骤2:添加Docker设备

首选项->设备中选择添加Docker Device,选择自己的Docker容器。

配置完成后选择Docker容器,划到最下面选择Auto Detect Kit Items检测容器的qmake。

步骤3:验证配置

如果正常的话这时候在项目选项卡中应该是没有红色感叹号的。如果有,可以在bash中输入以下命令检测qmake是否已安装:

which qmake

如果没有输出,需要重新安装Qt依赖。

步骤4:构建项目

配置完成后直接构建即可构建linux目录。

步骤5:生成DEB包

最后可以通过以下命令生成deb包:

docker run --rm -v "/Users/XXX/Desktop/Workspace/audioeasestudio:/workspace" -w /workspace audioeasestudio-dev:latest bash -c "cd build && cpack -G DEB 2>&1"
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/8 17:48:40

Zotero Style:让文献管理变得优雅高效的终极指南

Zotero Style:让文献管理变得优雅高效的终极指南 【免费下载链接】zotero-style Ethereal Style for Zotero 项目地址: https://gitcode.com/GitHub_Trending/zo/zotero-style 还在为海量文献管理而烦恼吗?Zotero Style插件正是你需要的文献管理神…

作者头像 李华
网站建设 2026/5/8 17:46:00

如何快速配置Applite镜像功能:解决macOS软件下载缓慢的终极指南

如何快速配置Applite镜像功能:解决macOS软件下载缓慢的终极指南 【免费下载链接】Applite User-friendly GUI macOS application for Homebrew Casks 项目地址: https://gitcode.com/gh_mirrors/ap/Applite Applite是一款专为macOS设计的用户友好型Homebrew …

作者头像 李华
网站建设 2026/5/8 17:45:38

魔兽争霸III性能优化实战:WarcraftHelper完整配置指南

魔兽争霸III性能优化实战:WarcraftHelper完整配置指南 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 魔兽争霸III作为经典即时战略游戏&a…

作者头像 李华
网站建设 2026/5/8 17:45:29

5分钟快速上手:让你的Windows字体拥有macOS般清晰体验

5分钟快速上手:让你的Windows字体拥有macOS般清晰体验 【免费下载链接】mactype Better font rendering for Windows. 项目地址: https://gitcode.com/gh_mirrors/ma/mactype 还在为Windows系统下模糊的字体显示效果而烦恼吗?MacType是一款免费开…

作者头像 李华