1. 动手前先想清楚:装哪个版本、走哪条安装路线
关于 Ubuntu 24.04 安装 Qt,网上的教程不少,但版本各不相同。有人装的是 Qt 6.x,有人还在用 Qt 5.15.2,有人走官方在线安装器,有人用离线包,评论区里还经常看到 platform plugin xcb 报错、中文输入法切不出来、qmake 找不到命令这些追问。我这次就把自己在新系统上从零到可用的一套流程整理出来,从版本选择、依赖准备到 Qt Creator 配置、常见坑排查一次性讲清楚。无论你是刚入门的 Qt 新手,还是给实验室或者公司机器批量装环境的同学,这篇都可以直接照着抄。
先说结论:如果你准备在新项目上投入,建议直接装 Qt 6.5 LTS 或者更新的 6.x 版本;如果你要维护老项目、公司内部还依赖 qmake 构建和 Qt 5 模块,那 Qt 5.15.2 依然值得保留。很多工业软件、嵌入式上位机工程到现在还是 Qt 5.15.2 起步,这不是保守,而是业务决定的。所以这里我建议不是二选一,而是看你的实际使用场景,甚至可以两个版本共存。
1.1 Qt 6.x 和 Qt 5.15.2 怎么选
Qt 6.x 从架构上做了不少调整,模块拆分更细,CMake 已经成了官方首选的构建方式,QML 和 Quick 的性能提升也很明显。如果是从头开始做新应用,用 Qt 6 可以省去以后迁移的成本。特别是 Ubuntu 24.04 这种比较新的系统,装 Qt 6.5 以上的任何版本,系统库兼容性都相对顺畅,不容易遇到“C++ ABI 不匹配”这类奇怪问题。
Qt 5.15.2 是 Qt 5 系列的最后一个 LTS 版本,注意 5.15.3 之后是商业维护,开源社区基本停留在 5.15.2。很多老代码、老教程、老依赖库都围绕它展开,比如 QCustomPlot 这类老牌绘图库,和 Qt 5 的组合在工业项目里用得非常稳。另外,不少第三方硬件厂商提供的 SDK 仍然只针对 Qt 5 编译,所以如果你手里有厂家提供的库文件,最好先确认它们是基于 Qt 5 还是 Qt 6 编译的。
两个版本能不能共存?完全可以。Qt 官方安装器支持把多个版本装在同一套目录下,比如 ~/Qt/6.5.3/gcc_64 和 ~/Qt/5.15.2/gcc_64,Qt Creator 会自动扫描识别。实际使用中无非就是切换构建套件,我后面会详细说。
1.2 三种安装方式怎么选:在线安装器、离线包、apt
安装 Qt 常见路径有三条:
- 官方在线安装器:这是最推荐的常规方案。下载一个几十 MB 的启动器,运行后按提示登录 Qt 账号、勾选组件,安装器会从官方源把需要的内容拉下来。好处是组件可选、版本可选、后续还能通过维护工具增删组件。
- 离线安装包:适合内网环境、批量部署、网络不稳定或者需要反复安装的场景。官方对部分老版本提供
.run离线包,体积大,下载一次后面就省心了。 - apt 直接安装:
sudo apt install qtbase5-dev qt6-base-dev这类方式适合只需要 Qt 运行库、不想要完整 IDE 的场景。Ubuntu 仓库里打包的 Qt 版本通常落后于官方最新版,但胜在简单、和系统包管理集成良好,后续升级依赖也方便。
这三种方式不冲突。我自己常干的组合是:用官方在线安装器装 Qt 6 和 Qt Creator,再用 apt 补系统编译依赖和运行库,双保险。
1.3 先把编译链和依赖补齐
很多人安装 Qt 时只急着下载安装包,结果装完之后编译第一个 Demo 就报错,不是缺 g++ 就是找不到 OpenGL 头文件。这里建议先把基础编译工具和 Qt 运行时依赖装好,一次性到位:
bash复制sudo apt update
sudo apt install build-essential cmake ninja-build gdb
sudo apt install libgl1-mesa-dev libglu1-mesa-dev freeglut3-dev
build-essential 里包含了 gcc、g++ 和 make,这是编译 C++ 项目的最小集合。libgl1-mesa-dev 和 libglu1-mesa-dev 是 OpenGL 开发库,Qt Widgets 和 Qt Quick 的程序基本都依赖 OpenGL 相关模块,缺了这些头文件,编译时会出现 fatal error: GL/gl.h: No such file or directory,尤其 Qt 6 下这个报错特别常见。
除此之外,Qt 6.5 之后的 Linux 版本对 libxcb-cursor0 有硬依赖,缺失时程序运行会直接报 platform plugin 加载失败。建议一并用下面这条命令装掉:
bash复制sudo apt install libxcb-cursor0 libxkbcommon-x11-0 libxkbcommon0 \
libxcb-icccm4 libxcb-keysyms1 libxcb-shape0 libxcb-xfixes0 \
libxcb-render-util0 libxcb-xinerama0
这些库看着多,实际上体积都不大,几分钟就能装完。装好之后,再进入 Qt 本体安装,后面的坑会少很多。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 在线安装器完整实操:下载、授权、组件勾选
这一节讲官方在线安装器最完整的流程,跟着一步步操作就行。
2.1 去官网下载页拿安装器
打开 Qt 官方下载页,进入开源版本下载入口,找到 Qt Online Installer for Linux。文件名一般是 qt-online-installer-linux-x64-x.x.x.run,x86_64 架构的 Ubuntu 24.04 桌面版直接选这个就行,ARM 设备另说。
这里有个细节:浏览器下载完成后,安装器默认没有执行权限。在终端里进入下载目录执行:
bash复制chmod +x qt-online-installer-linux-x64-*.run
然后再启动安装器:
bash复制./qt-online-installer-linux-x64-*.run
如果双击 .run 文件没反应,多半也是权限问题,在终端里跑一下就能看到完整输出。
2.2 登录账号和安装器界面
运行安装器后会自动弹出图形界面。第一步会要求登录 Qt 账号,没有的话去官网注册一个,用个人邮箱很快就能完成。这一步绕不开,在线安装器必须登录后才能继续。
接下来是几个配置项:
- 安装路径:建议选
~/Qt,不要放到系统目录,也不要放在中文路径或者带空格的路径下。原因很简单,后期很多构建脚本、交叉编译工具链会对路径做字符串拼接,路径一复杂就容易踩坑。 - 自定义安装还是默认安装:第一次装建议选“自定义”,后面勾选组件时需要精细控制。
2.3 组件勾选:别贪多也别漏掉几个关键的
组件列表是把树展开看的,默认可能没有把每种版本都列出来。这里最容易出问题的两点:一是找不到 Qt 5.15.2,二是不清楚自己需要什么模块。
Qt 5 系列尤其是 5.15.2,在在线安装器里通常被归类到 Archive 一栏,需要手动展开老版本的过滤器才能显示出来。如果你只想用 Qt 5,记得在筛选栏勾上 Archive,不然列表里压根看不到。
标准勾选建议这样来:
- Qt 6.x 主版本下,至少勾上
Desktop模块,也就是对应 gcc_64 的桌面套件。 - 如果需要 Web 页面嵌入,勾上
Qt WebEngine。 - 需要绘图和图表,勾上
Qt Charts、Qt Data Visualization。 - 需要串口、网络、数据库这些,Qt 默认基础模块里多数已经包含,但 Serial Port 等模块在 Qt 6 里需要单独从组件树里确认。
- 工具里一定要勾
Qt Creator、CMake和Ninja。Qt Creator 是 IDE,CMake 和 Ninja 是常用的构建工具,与其系统单独装,不如一起装好,省得版本不匹配。
组件勾选完毕后安装器会算体积,通常 Qt 6 桌面开发完整装下来 10 GB 到 20 GB 不等。如果磁盘紧张,可以在后续取消一些用不到的平台源码和示例,但核心模块不要动。
2.4 安装完成后的目录检查
安装结束后,回到终端执行:
bash复制ls ~/Qt
正常情况下能看到对应版本目录,比如 ~/Qt/6.5.3、~/Qt/Tools、~/Qt/5.15.2。进入 ~/Qt/6.5.3/gcc_64/bin,应该能看到 qmake、qml、qt-config 这些可执行文件。
这一节最后想提醒一句:在线安装器装完后会生成 MaintenanceTool,很多人忽略它的价值。后续想增删组件、卸载 Qt,直接运行 ~/Qt/MaintenanceTool 就行,不需要再重新下载安装器。
3. 离线安装包方案:断网环境下的备选路线
在线安装器确实方便,但国内访问官方源或者在公司内网部署时,往往网络条件不理想。这时候离线包就是很踏实的备用方案。
3.1 离线安装包从官方归档渠道获取
Qt 官方对历史版本提供了归档下载入口,download.qt.io 下有 /archive/qt 目录,按大版本层级组织。比如想找 Qt 5.15.2,路径大致是 archive/qt/5.15/5.15.2/,里面有不同平台的离线安装器,Ubuntu 桌面选 qt-opensource-linux-x64-5.15.2.run 这类文件。
这里必须注意两点:一是架构必须和本机匹配,x86_64 机器不要下 ARM 版本;二是优先选择官方源或官方镜像源,不要在来路不明的第三方站点下载,一来安装包可能被篡改,二来明面文件大小和版本号对不上也容易白折腾。
我还在国产麒麟 x86 环境里用这套离线包装过 Qt 5.15.2,只要系统架构匹配,流程和 Ubuntu 基本一致,主要区别在于部分系统依赖安装时名称略有不同。所以离线包不只是“断网备用”,在非标准发行版环境下反而更可靠。
3.2 执行离线安装
离线包的安装逻辑和在线安装器相似,也支持图形界面,但好处是不需要登录账号,也不需要等待下载:
bash复制chmod +x qt-opensource-linux-x64-5.15.2.run
./qt-opensource-linux-x64-5.15.2.run
后面依然有组件选择和解压过程,只是数据源在本地,安装速度明显快很多。如果目标是批量装多台机器,更聪明的做法是先在一台机器上装好,再把整个 ~/Qt 目录用 tar 打包传到其他机器解压,只要系统发行版和架构相同,几乎可以免安装直接使用。
3.3 为什么这种方案在批量部署时更省心
批量部署场景下,在线安装器要每台机器去跑一遍下载,不仅慢,网络波动大时还容易中断。离线包加目录拷贝的方式,我实际测过,12 台机器从解压到配置完成,一个小时之内能全部搞定。
不过离线包也有个局限:它携带的组件列表是打包时确定的,安装之后想加一个新模块,比如 Qt Charts,就还得再下载对应模块或者重新走一遍在线安装器。所以离线包更适合“一次性把环境固定下来”的项目,不适合频繁变动依赖的团队。
4. 安装后的环境配置:qmake、PATH 和 Qt Creator 的 Kits
安装完成不等于配置完成。很多人卡在这一步,明明 Qt 装好了,打开终端却敲不出 qmake -v,或者打开 Qt Creator 新建项目时反复提示编译套件无效。这节把环境变量和 IDE 配置一次讲透。
4.1 让 qmake 在终端里直接可用
Qt 的 bin 目录并不在系统默认 PATH 中,意味着你在终端输入 qmake 会提示找不到命令。解决方案是写进 shell 配置文件,编辑 ~/.bashrc,在末尾追加:
bash复制export PATH=$HOME/Qt/6.5.3/gcc_64/bin:$PATH
如果你的 Qt 装在别的路径,就改成对应路径,比如:
bash复制export PATH=$HOME/Qt/5.15.2/gcc_64/bin:$PATH
如果同时装了 Qt 6 和 Qt 5,需要明确哪个版本优先。我实际做法是先把系统 apt 的 qtchooser 移除,避免它出来“抢” qmake 指向:
bash复制sudo apt remove qtchooser
当然这不是强制要求,如果你不介意手动切换,保留 qtchooser 也行,只是它在终端里默认指向的系统 Qt 版本可能和官方安装器的版本不一致,后续编译时容易产生混淆。执行 source ~/.bashrc 后,用 qmake -v 验证,输出中会明确显示 Qt 版本号和构建路径。
4.2 Qt Creator 里编译器套件到底怎么配
Qt Creator 的核心概念是 Kits,即“构建套件”。一个构建套件由编译器、调试器、Qt 版本和 CMake 工具四件套组成。正常情况下,Qt Creator 会自动检测到系统里的 gcc/g++ 以及安装的 Qt 版本,并自动生成默认套件。
如果你发现新建项目时没有可用套件,多半是以下几个原因:
- 系统没装 g++:回到第 1.3 节把
build-essential装上再重启 Qt Creator。 - Qt 路径没被自动识别:去菜单
Tools -> Options -> Kits -> Qt Versions,手动添加 qmake 路径。 - 符号链接问题:有时 Qt Creator 识别到的是
/usr/bin/qmake而不是~/Qt/.../bin/qmake,需要手动点击 “Add”,选择你自己安装的 qmake。
一个常见误区是把 gcc 编译器路径设成了 g++,或者在 Desktop 套件里勾选了 MinGW,但 Linux 系统没有装 MinGW,导致编译链断裂。Linux 下直接用系统默认的 GCC/G++ 就好,不必额外折腾 MinGW,那主要是 Windows 交叉编译才需要。
4.3 缺 OpenGL 和 xcb 库时的表现及补装方式
即便安装器都走完了,运行时照样可能因为缺 OpenGL 库或者 xcb 相关组件而崩溃。最典型的症状:
- 程序启动时黑屏或者闪退,命令行输出类似
Failed to load platform plugin "xcb"。 - 编译时报
GL/gl.h缺失,找不到 Qt::OpenGL 相关模块。
前者我一般直接补装如下库:
bash复制sudo apt install libxcb-cursor0 libxcb-icccm4 libxcb-keysyms1 \
libxcb-shape0 libxcb-xfixes0 libxkbcommon-x11-0
后者则回去补装第 1.3 节的 OpenGL 开发包。这些库的安装优先级非常高,我在 Qt 6.5 的环境里遇到的最多问题就是缺 libxcb-cursor0,装完之后程序瞬间恢复正常。
还有一个值得注意的点:Qt 6 默认会启用 Wayland 支持,但在部分虚拟机或者老旧显卡驱动环境下,Wayland 后端可能不稳定。如果遇到窗口显示异常,试着设置环境变量强制走 X11:
bash复制export QT_QPA_PLATFORM=xcb
或者从登录界面切换到 Xorg 会话再登录 Ubuntu,问题往往迎刃而解。
5. 写个 Demo 验证环境:图形界面到命令行都要跑通
环境配完之后,最直观的验证方式是新建一个最简单的 Qt Widgets 程序,跑一次完整“创建-编译-运行”流程。这一步能帮你确认 Qt Creator、qmake/cmake、g++、OpenGL 库链条是否真的打通。
5.1 Qt Creator 里新建项目跑一遍
打开 Qt Creator,选择 File -> New Project -> Application (Qt Widgets) -> Choose。项目名称比如 hello_qt,路径选择某个普通目录,不要放在 /root 或者其他权限特殊的位置。构建套件选择你刚才配置好的 Desktop 套件,建议勾上 qmake 和 CMake 两种构建方式分别试一下。
生成的项目默认自带一个主窗口类。直接点左下角的绿色运行按钮,如果能看到窗口弹出来,说明 Qt Creator 层面的环境是通的。如果运行按钮置灰,或者点击后提示 no kits available,回第 4.2 节检查 Kits 配置。
5.2 用 qmake 命令行编译一遍
IDE 能编译不代表命令行也能编译,尤其是后续你可能会在服务器上跑自动化构建。在终端单独走一遍 qmake 编译流程很有必要。
先创建一个项目目录和工程文件:
bash复制mkdir ~/qt_hello && cd ~/qt_hello
写入工程文件 hello.pro:
pro复制QT += widgets
SOURCES += main.cpp
TARGET = hello
再写 main.cpp:
cpp复制#include <QApplication>
#include <QLabel>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QLabel label("Hello Qt on Ubuntu 24.04");
label.resize(320, 120);
label.show();
return app.exec();
}
然后依次执行:
bash复制qmake
make
./hello
终端里若没有报错,并且弹出包含文字的窗口,说明 qmake、make、Qt 运行时环境全部正常。此时 ls 目录会看到生成的可执行文件 hello 和一系列 .o 中间文件。
5.3 检查 Qt 版本、qmake 路径和编译架构
命令行验证通过后,再快速做几个信息确认,方便以后和同事对齐:
bash复制qmake -v
which qmake
ldd ./hello | grep Qt
which qmake 输出路径应该指向你安装的 Qt 目录,而不是 /usr/bin/qmake。ldd 可以列出可执行文件依赖的 Qt 动态库,如果某些 Qt 库显示 not found,说明 LD_LIBRARY_PATH 没有指向 Qt 的 lib 目录,需要补上:
bash复制export LD_LIBRARY_PATH=$HOME/Qt/6.5.3/gcc_64/lib:$LD_LIBRARY_PATH
如果想要永久生效,还是写进 ~/.bashrc。这一条尤其重要,Qt 程序在开发机上直接运行时,由于 Qt Creator 会主动注入库路径,通常不会暴露问题;但脱离 IDE 从终端执行,或者拷贝到其他机器,会发现典型的 error while loading shared libraries。
6. 常见问题与排查技巧实录
这一节是我整理过的典型问题,基本是把这两年在不同机器上踩过的坑汇总了一遍,每一条都有对应解决方案。
6.1 平台插件加载失败:xcb 缺失该补哪些包
报错最常见的一句话是:
code复制qt.qpa.plugin: From 6.5.0, xcb-cursor0 or libxcb-cursor0 is needed to load the Qt xcb platform plugin.
Could not load the Qt platform plugin "xcb" in "" even though it was found.
这个问题的根源就是系统缺少 xcb-cursor 库。Qt 6.5 之后把它变成了硬依赖,但干净安装的 Ubuntu 24.04 默认不一定带它。解决办法:
bash复制sudo apt install libxcb-cursor0
装完再运行程序,问题基本消失。如果报错内容里还提到其他 xcb 组件,比如 icccm、keysyms、shape、xfixes,就一并装掉:
bash复制sudo apt install libxcb-icccm4 libxcb-keysyms1 libxcb-shape0 libxcb-xfixes0 libxcb-render-util0
这类问题在虚拟机上尤其高发,因为某些精简版虚拟机镜像会砍掉大量 xorg 相关库,所以做镜像模板的时候一定要把 xcb 系列补齐。我的经验是:与其逐条等报错再补,不如初始化镜像时就把常见的 xcb 库全部装好。
6.2 中文输入法调不出来:fcitx5 的 Qt 插件问题
Ubuntu 24.04 默认使用 IBus 输入法,但很多从中文社区过来的用户习惯换成 fcitx5。换完之后发现 Qt 程序里按 Ctrl+Space 完全没反应,但 gedit、Firefox 等 GTK 程序一切正常,原因就是 Qt 程序没有加载 fcitx5 的输入法插件。
解决办法分两步。第一步安装前端模块:
bash复制sudo apt install fcitx5-frontend-qt5 fcitx5-frontend-qt6
第二步设置环境变量,编辑 ~/.bashrc 或 /etc/environment:
bash复制export QT_IM_MODULE=fcitx
export GTK_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
设置完成后注销重新登录,Qt 程序里的中文输入法就能正常唤起。这里提醒一下,如果你用的是 Wayland 会话,fcitx5 的输入法弹窗有时会位置跑偏,建议优先切到 Xorg 会话使用。
另外,微信 Linux 版 4.x 这类基于 Qt 构建的应用,在 Ubuntu 24.04 上也曾出现过界面中文虚化模糊、字体发虚的情况,很大程度上不是显卡问题,而是 Qt 的高 DPI 缩放策略没有正确加载,顺着下面的高 DPI 设置调一调,效果会明显改善。
6.3 高分屏下界面字体虚化模糊
高分屏下 Qt 界面模糊是很多笔记本用户的痛点。Qt 5 和 Qt 6 的默认高 DPI 行为不一样,Qt 6 默认启用高 DPI 缩放,但 Qt 5 需要手动开启。
如果在 2K 或 4K 屏幕上文字发虚,先试试设置缩放环境变量:
bash复制export QT_AUTO_SCREEN_SCALE_FACTOR=1
export QT_ENABLE_HIGHDPI_SCALING=1
如果程序还是太小或者模糊,就直接指定缩放比例:
bash复制export QT_SCALE_FACTOR=1.5
这个值根据个人屏幕情况调整,我手头一台 2560x1600 的笔记本习惯设为 1.25 或 1.5,字体清晰度明显提升。
需要注意,缩放设置对 Qt Quick/QML 程序的布局影响比较大,有时会出现控件溢出。这时可以改用 QT_SCREEN_SCALE_FACTORS 精确控制每个屏幕的缩放,而不是全局统一比例。
6.4 卸载 Qt 的正确姿势
有朋友直接问“怎么卸载 Qt”,这里统一说一下。Qt 官方安装器没有提供像 apt 那样干净的卸载接口,但并不复杂:
- 如果有安装目录下的
MaintenanceTool,运行它选择“移除所有组件”,这是官方推荐的方式。 - 如果连 MaintenanceTool 都删了,就直接删除整个 Qt 安装目录,比如
rm -rf ~/Qt。 - 之后要清理 Qt Creator 的配置缓存,一般位于
~/.config/QtProject和~/.local/share/data/QtProject,验证了不需要再保留后可以一并删除。
另外,如果之前配置了 PATH 环境变量,记得从 ~/.bashrc 里删掉相关 export 行,否则终端里 qmake -v 还会提示找不到命令,容易误导人以为没卸载干净。
还有一种场景是“卸载系统 qtchooser 默认指向的 Qt 库”,用 apt 按包名卸载即可,比如 sudo apt remove qtbase5-dev。但要注意不要误删系统依赖,否则部分桌面组件可能无法正常工作。
6.5 虚拟机与双系统环境下的注意事项
很多人是在虚拟机里先体验 Ubuntu 24.04 再安装 Qt,VMware 或 VirtualBox 里如果没启用 3D 加速,Qt Quick 程序会表现为黑屏、窗口无法刷新,或者 GPU 相关警告刷屏。解决办法是先确认虚拟机的 3D 加速已开启,并安装虚拟机增强工具或 VMware Tools,硬件驱动正常后,Qt 界面渲染会流畅很多。
双系统场景下,显卡驱动反而是最大的变量。NVIDIA 独显机器装好 Ubuntu 24.04 后如果还在用 nouveau 开源驱动,Qt 程序的 OpenGL 渲染可能出现异常。建议优先安装厂商闭源驱动,然后在登录界面选择 Xorg 会话。之前有朋友遇到的 Qt 程序画面卡顿问题,最终就是通过换闭源驱动解决的。
7. 装完 Qt 之后你大概率还会折腾的几件事
Qt 基础环境装好只是第一步,实际开发中还会碰到绘图、串口、打包、编辑器集成这些关联需求。这里挑几个和 Ubuntu 24.04 + Qt 组合比较常见的方向快速展开。
7.1 数据绘图:QCustomPlot 与 Qt Charts
热词里频繁出现“不知道 Ubuntu24.04 用 Qt 时域图转换频域图”“QCustomPlot”“Qt Charts”,这类需求非常典型。QCustomPlot 是一个开源的 Qt 绘图库,不需要额外安装,直接把 qcustomplot.h 和 qcustomplot.cpp 两个文件拷进工程,在 .pro 里写上 QT += printsupport 就能编译使用。想做时域、频域波形绘制时,配合 kissfft 做 FFT 变换,再用 QCustomPlot 的 addGraph 和 setData 就能把频域曲线画出来,整个过程都是在用户态代码里完成,不依赖额外的 Qt 模块。
如果你更倾向于使用官方模块,Qt Charts 在 Qt 6 中作为独立模块提供,安装时在组件树里勾上 Qt Charts 即可,项目 .pro 里写 QT += charts,头文件包含 QtCharts,用法和 QCustomPlot 完全不同,但底层渲染基于 Qt Graphics View 框架,风格更现代化。
7.2 串口通信与外部库调用
Qt 串口模块在 Qt 6 里属于附加模块,组件勾选时如果不注意会漏掉。编译时如果提示 QT += serialport 无效,说明组件没有安装,需要打开 MaintenanceTool 补装 Qt Serial Port 模块。
调用 Halcon、OpenCV 这类外部库是另一个常见场景。原理不复杂,在 .pro 里添加头文件路径和库路径:
pro复制INCLUDEPATH += /opt/halcon/include
LIBS += -L/opt/halcon/lib -lhalcon
但实际工作中,厂商 SDK 常常基于特定 Qt 版本编译,链接时 ABI 不匹配会非常折磨人。我建议先把基础 SDK 官方 Demo 跑通,确认它要求的 Qt 版本,再决定本机 Qt 主版本,顺序不要搞反。
7.3 打包发布:Linux 下的部署工具
热词里有“Qt 打包应用程序 windeployqt”,那是 Windows 侧的工具,Linux 侧对应的思路是用 linuxdeployqt 配合 AppImage 机制做分发。不过要注意,linuxdeployqt 对 Qt 6 的支持没有像 Qt 5 那么成熟,新项目用 Qt 6 时更推荐直接使用 Qt 官方提供的 windeployqt 和 linuxdeployqt 新版本,或者用 CMake 安装规则配合 ldd 手写依赖拷贝脚本。
我个人更常用的方式是:CMake 的 install 规则把可执行文件和资源安装到指定目录,再用 linuxdeployqt 把这个目录里的 Qt 依赖打进去,最后生成 AppImage。这个流程需要额外安装 FUSE 库,sudo apt install libfuse2 是少不了的。
7.4 编辑器接 Qt Designer:vscode 配置
不少 Qt 开发者习惯用 VS Code 写代码,再用 Qt Designer 拖界面。VS Code 里安装 Qt Tools 插件后,在设置里指定 Qt Designer 可执行文件路径、uic 路径和 rcc 路径。如果 Qt 装的是 Qt 6,注意区分插件支持的是 Qt 5 还是 Qt 6,有的插件对 Qt 6 的 uic 路径识别存在偏差,需要在 settings.json 里手动指定。
这里有个小技巧:如果 VS Code 的 Qt Tools 插件总是找不到官方 Qt 路径,可以先确认 uic、rcc 是否在 PATH 里:
bash复制which uic
which rcc
如果为空,还是回到第 4.1 节,把 Qt 的 bin 目录加进 PATH。很多插件都是直接调用 PATH 里的工具,这一步没做,插件配置再精细也没用。
我在实际干活的过程中,最大的体会是环境安装这件事,最花时间的往往不是 Qt 安装器本身那十几分钟,而是依赖补齐、版本切换和莫名其妙的动态库路径问题。所以建议你在正式环境动手之前,先在虚拟机里把整套流程走一遍,把需要 apt install 的包列表固定下来,之后无论是重装系统还是给同事搭环境,照着一遍过,能少走很多弯路。
