FEATURED · 精选文章

Linux系统Qt5安装全攻略:在线安装、包管理器与源码编译深度对比

发布时间 / 2026/8/23 2:07:54
来源 / 创域科博编辑部
栏目 / 资讯中心
Linux系统Qt5安装全攻略:在线安装、包管理器与源码编译深度对比 1. 项目缘起为什么在Linux上装Qt5依然是个技术活最近在给团队搭建一个跨平台的C GUI开发环境目标平台是Ubuntu 22.04 LTS。虽然Qt6已经发布好几年了但项目里依赖的几个老牌第三方库对Qt6的支持还不太稳定编译时总会冒出一些奇怪的链接错误。权衡之下决定还是先上Qt 5.15 LTS这个“老熟人”。本以为在Linux上用包管理器一行命令就能搞定结果却踩了一路的坑。从依赖缺失、版本冲突到在线安装器网络抽风再到编译源码时令人绝望的等待时间几乎把能遇到的雷都踩了一遍。网上很多教程要么过于简略只给命令不给解释要么就是年代久远步骤已经失效。特别是对于从Windows转过来的开发者Linux下软件安装的灵活性和随之而来的复杂性确实是一道门槛。今天我就把这次完整的安装、配置和排错过程梳理出来不仅告诉你每一步怎么做更会解释清楚背后的原因以及如何根据你自己的系统环境做出最合适的选择。无论你是刚接触Linux的开发者还是需要为特定项目配置Qt环境的老手这份指南都能帮你绕过那些隐形的坑高效地搭建起可用的Qt5开发环境。2. Qt5安装路径抉择在线安装、包管理器与源码编译的深度对比在Linux上安装Qt5主流就三条路使用Qt官方在线安装器、通过发行版的包管理器安装、或者从源码手动编译。选哪条路直接决定了后续开发的便利性、环境的纯净度以及可能遇到的麻烦。这里我结合自己的踩坑经验给你做一个透彻的对比分析。2.1 官方在线安装器灵活与麻烦并存这是Qt官方推荐的方式。你需要从Qt官网下载一个名为qt-unified-linux-x64-online.run的安装脚本。它的最大优势是灵活和完整。版本任选你可以自由选择安装Qt 5.12, 5.15甚至是更老的5.9以及最新的Qt6多个版本可以共存。组件自定义除了Qt基础库你还可以勾选Qt Creator IDE、调试工具、附加模块如Qt Charts, Qt Data Visualization、不同编译器的支持GCC, Clang以及Android/iOS的构建套件。这对于需要特定功能或进行跨平台开发的场景是必须的。环境独立它通常被安装到用户目录下如~/Qt与系统自带的包完全隔离避免了污染系统环境也减少了依赖冲突的可能。但是它的缺点在中国网络环境下被放大了下载极慢且不稳定安装器需要从海外服务器下载几个G的数据速度慢且容易中断。很多教程会教你修改/etc/hosts或使用代理但这本身又涉及网络配置对新手不友好。需要Qt账户下载和运行安装器都需要登录Qt账号虽然注册免费但多了一个步骤。路径配置安装后你需要手动将Qt的bin目录如~/Qt/5.15.2/gcc_64/bin添加到系统的PATH环境变量中并将库路径配置好否则终端和IDE都找不到它。注意如果你选择了在线安装器但在运行时遇到“无法验证安装程序”或“权限被拒绝”的错误除了赋予执行权限(chmod x qt-unified-linux-x64-online.run)还可能是因为系统缺少必要的图形库。可以尝试先安装libxcb-xinerama0这个包sudo apt install libxcb-xinerama0。2.2 系统包管理器最快捷但可能“缺斤少两”以Ubuntu/Debian系的apt为例安装Qt5基础开发包非常简单sudo apt update sudo apt install qt5-default qtbase5-dev qtchooser qt5-qmake对于其他发行版如Fedora用dnf install qt5-qtbase-develArch用pacman -S qt5-base。优点显而易见一键安装自动解决依赖安装后基本无需额外配置系统级可用。但致命的缺点在于其局限性版本固定你只能安装发行版软件仓库中提供的版本。比如Ubuntu 22.04默认提供的是Qt 5.15.3你想用5.15.2或5.12几乎不可能。组件不全仓库里的Qt包通常是拆分的。qt5-default可能只包含最核心的库。如果你想用QtWebEngine、QtCharts、Qt3D等模块需要单独查找并安装对应的-dev包例如sudo apt install qtwebengine5-dev。这个过程像拼图容易遗漏。环境冲突如果你未来还需要通过其他方式安装其他版本的Qt很容易和系统包管理的版本产生冲突导致qmake、cmake调用混乱。实操心得对于初学者、或者只是需要快速验证一个简单Qt程序的同学包管理器是最佳选择。但对于严肃的项目开发尤其是对Qt版本或特定模块有明确要求的包管理器提供的环境往往不够用。2.3 源码编译终极控制时间代价巨大从 Qt官方服务器 下载某个版本如5.15.2的完整源码包.tar.xz格式然后自己配置、编译、安装。这是最硬核、最灵活也是最耗时的方式。它的好处是绝对控制你可以精确指定安装路径(-prefix)选择编译哪些模块(-skip或-nomake)甚至为特定平台进行优化。获取任何版本官方存档里有几乎所有历史版本适合需要复现古老编译环境的项目。学习价值你能深入了解Qt的构建系统。但代价是巨大的耗时在普通台式机上完整编译Qt5可能需要数小时甚至更久。依赖地狱编译前需要安装一长串的开发工具和库依赖例如build-essential,libgl1-mesa-dev,libxkbcommon-x11-devopenssl等等。缺失任何一个都会导致编译失败而错误信息有时并不直观。容易出错配置参数复杂编译过程长中间任何网络波动或系统资源不足都可能导致失败。我的建议是除非你有非常特殊的定制化需求比如裁剪掉不需要的模块以缩减体积或者项目强制要求从源码构建否则不要轻易尝试这条路。它更像是一个“备胎”方案或者资深开发者的玩具。如何选择新手/快速验证无脑用系统包管理器。正式项目开发/需要特定版本或完整组件咬牙解决网络问题用官方在线安装器。嵌入式定制/深度研究考虑源码编译。接下来我将以最常用的在线安装器方式为主线穿插包管理器的补充说明带你走通全流程并重点讲解那些容易卡住的地方。3. 实战通过在线安装器部署Qt 5.15.2全记录假设我们选择在线安装器目标是在Ubuntu 22.04上安装Qt 5.15.2和Qt Creator。这个过程分为准备、安装、配置三步。3.1 安装前准备处理依赖与权限首先我们需要确保系统有运行图形化安装程序的基本环境。打开终端执行以下命令更新软件源并安装一些基础库sudo apt update sudo apt install libxcb-xinerama0 libxkbcommon-x11-0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-shape0 libxcb-sync1 libxcb-xfixes0 libxcb-xinerama0 libxcb-xkb1这些libxcb开头的库是X Window系统通信的基础缺少它们Qt安装器可能无法启动或者启动后界面显示异常。这是很多教程里没提但实际很容易遇到的坑。接着下载安装器。由于官网下载可能较慢你可以尝试使用国内的镜像源。例如到中国科学技术大学开源软件镜像站寻找Qt目录。下载后文件通常位于~/Downloads目录。赋予安装器执行权限cd ~/Downloads chmod x qt-unified-linux-x64-online.run3.2 执行安装组件选择与目录规划现在可以运行安装器了./qt-unified-linux-x64-online.run登录Qt账户启动后首先会提示你登录Qt账号。如果没有需要去官网免费注册一个。选择安装目录这一步很重要。我强烈建议不要安装在系统目录如/usr/local而是安装在你的用户主目录下比如/home/你的用户名/Qt。这样做的好处是不需要root权限所有操作都在用户权限内完成。多版本共存方便你可以在这个目录下安装5.12、5.15、6.5等多个版本互不干扰。卸载简单直接删除整个Qt目录即可不会影响系统其他软件。选择组件这是核心步骤。在“选择组件”页面你会看到一个树状结构。Qt-Qt 5.15.2展开后你会看到一堆组件。对于桌面开发至少勾选Desktop gcc 64-bit这是用于64位Linux桌面开发的核心套件。Qt Creator这是Qt官方的IDE对Qt开发的支持最好必装。Qt 5.15.2下的SourcesQt的源码方便你调试时进入Qt内部代码建议安装。Developer and Designer Tools确保Qt Creator已被勾选。你也可以勾选Debugging Tools等。关于Android/iOS除非你确定要进行移动端开发否则不要勾选它们体积巨大且需要额外的SDK配置。注意组件列表里可能还有Qt WebEngine、Qt Charts等。如果你的项目明确需要就在这里勾选。如果安装时忘了后期想再添加必须重新运行安装器并勾选“添加或移除组件”然后走一遍几乎完整的安装流程非常耗时。所以务必在第一次安装时想清楚。同意许可协议然后开始安装。接下来就是漫长的下载和安装过程耗时取决于你的网速。3.3 安装后配置让系统找到你的Qt安装完成后如果你直接打开终端输入qmake -v系统很可能会提示“命令未找到”。这是因为安装器并没有自动修改系统的环境变量。我们需要手动将Qt和Qt Creator的可执行文件路径添加到PATH中。最推荐的做法是修改用户主目录下的shell配置文件如~/.bashrc或~/.zshrc这样每次打开终端都会自动生效。用文本编辑器打开配置文件这里以~/.bashrc为例nano ~/.bashrc在文件的末尾添加以下几行请根据你的实际安装路径修改# Qt 5.15.2 export PATH/home/你的用户名/Qt/5.15.2/gcc_64/bin:$PATH export PATH/home/你的用户名/Qt/Tools/QtCreator/bin:$PATH export LD_LIBRARY_PATH/home/你的用户名/Qt/5.15.2/gcc_64/lib:$LD_LIBRARY_PATH第一行将Qt的bin目录包含qmake,moc,uic等核心工具加入PATH。第二行将Qt Creator的bin目录加入PATH这样你就可以在终端里直接用qtcreator命令启动了。第三行将Qt的库目录加入LD_LIBRARY_PATH。这个环境变量告诉系统运行时去哪里找动态链接库.so文件。这一点非常关键如果不设置即使编译能通过运行编译出的程序时也可能会报错“找不到libQt5Core.so.5”之类的错误。保存文件后让配置立即生效source ~/.bashrc现在验证一下配置是否成功qmake -v如果输出显示QMake version 3.1和Using Qt version 5.15.2 in ...那就恭喜你Qt工具链配置成功了。 再验证Qt Creatorqtcreator --version如果能输出版本信息说明IDE也配置好了。4. 验证与排错从Hello World到疑难杂症解决环境配好了不跑个程序总觉得不踏实。我们用一个最简单的例子来验证整个开发流程是否通畅并借此讲解可能遇到的问题。4.1 创建并运行第一个Qt项目启动Qt Creator可以在终端输入qtcreator或者在系统应用菜单里找到它。新建项目点击“New Project”选择“Application” - “Qt Widgets Application”。配置项目给项目起名如HelloQt选择项目位置。在“Kit Selection”这一步至关重要你需要选择一个Kit。一个Kit定义了编译器、Qt版本和调试器。安装器应该已经自动配置好了一个名为“Desktop Qt 5.15.2 GCC 64bit”的Kit。确保它被选中。构建并运行点击左下角的绿色三角运行按钮。Qt Creator会自动执行qmake、make然后运行程序。你应该能看到一个带有一个按钮的空白窗口弹出来。4.2 常见问题与排错思路如果上述流程不顺利下面是一些常见问题的排查方向问题一Qt Creator里没有找到Qt 5.15.2的Kit。原因Qt Creator没有自动检测到我们安装的Qt版本。解决手动添加。打开Qt Creator进入工具-选项。在左侧找到Kits然后切换到Qt Versions标签页。点击“添加”浏览到你安装的Qt版本的qmake路径通常是~/Qt/5.15.2/gcc_64/bin/qmake。添加成功后再回到Kits标签页添加或修改一个Kit在“Qt version”下拉框中选择你刚刚添加的版本。问题二编译成功但运行时程序崩溃或提示“无法找到动态链接库”。原因运行时环境变量LD_LIBRARY_PATH没有生效或者程序在寻找其他地方的Qt库。解决确保你已经在~/.bashrc中正确设置了LD_LIBRARY_PATH并且执行了source ~/.bashrc。如果你是在桌面环境如GNOME的启动器中点击图标运行的Qt Creator它可能没有读取.bashrc中的环境变量。一个治标的方法是始终从终端启动Qt Creatorqtcreator 。治本的方法是将环境变量添加到全局配置文件但这不推荐。在Qt Creator中运行程序时可以修改运行配置。在项目模式中点击左侧的“项目”按钮在“运行”设置下你可以手动添加环境变量LD_LIBRARY_PATH值设置为你的Qt库路径。问题三qmake命令可以运行但cmake找不到Qt。原因CMake需要通过find_package(Qt5 COMPONENTS Core Widgets REQUIRED)来查找Qt它依赖一个叫Qt5Config.cmake的配置文件。解决你需要告诉CMake这个文件在哪里。有两种方式设置CMAKE_PREFIX_PATH环境变量在终端中export CMAKE_PREFIX_PATH~/Qt/5.15.2/gcc_64:$CMAKE_PREFIX_PATH或者将其写入~/.bashrc。CMake会在这个路径下寻找Qt。在CMakeLists.txt中指定路径不推荐因为不通用set(Qt5_DIR “~/Qt/5.15.2/gcc_64/lib/cmake/Qt5”)。问题四安装器下载速度极慢或失败。原因网络连接Qt官方服务器不畅。解决使用国内镜像这是最有效的方法。一些国内高校和机构提供了Qt的镜像。你可以尝试在安装时通过命令行参数指定镜像仓库具体镜像地址需要自行搜索确认且安装器版本需支持该参数。离线安装如果网络条件实在恶劣可以去Qt官方下载页面寻找对应版本的离线安装包文件巨大通常数GB。下载完成后运行离线安装包即可无需网络。5. 进阶配置与维护让开发环境更顺手基础环境搭好只是第一步要让Qt开发更高效还需要一些额外的配置和了解一些维护技巧。5.1 配置Qt Creator提升编码体验Qt Creator本身功能强大但默认设置可能不是最优的。代码格式化在工具-选项-Beautifier中可以配置ClangFormat或Artistic Style并设置为保存文件时自动格式化。快捷键熟悉常用快捷键如F4在头文件和源文件间切换F2跟踪符号Ctrl鼠标左键跳转到定义AltEnter快速修复如添加头文件。构建套件(Kit)管理如果你安装了多个Qt版本或多个编译器如GCC和Clang可以在选项-Kits中管理它们并为不同项目指定不同的Kit这对于测试代码在不同环境下的兼容性很有用。5.2 管理多个Qt版本如果你按照我的建议将Qt安装在用户目录下那么管理多个版本就非常容易。假设你现在已经有了5.15.2又想安装5.12.12用于测试旧项目。再次运行Qt在线安装器。登录后选择“添加或移除组件”。在组件树中找到并勾选Qt 5.12.12及其下的Desktop gcc 64-bit。继续安装。它会将5.12.12安装到~/Qt/5.12.12目录下与5.15.2互不干扰。在Qt Creator中你需要按照4.2节的方法手动添加这个新版本的qmake路径。之后你就可以在创建新项目或打开旧项目时自由选择使用哪个版本的Qt进行构建了。5.3 项目部署解决“在我机器上能跑”的问题开发完成的程序要拿到没有安装Qt开发环境的机器上运行需要处理动态库依赖。在Linux下有几种常见方法静态编译在编译Qt源码时配置静态链接然后将Qt静态库和你的程序一起编译。这样生成的可执行文件是独立的但体积巨大且Qt的许可协议LGPL对静态链接有更严格的约束需要仔细阅读。动态链接打包这是更常用的方式。你可以使用工具linuxdeployqt一个类似于Windows上windeployqt的工具它能够自动扫描你的可执行文件找出所有依赖的Qt库和系统库并将它们复制到一个文件夹中形成一个相对独立的发布包。虽然这个过程在Linux上比Windows上要复杂一些因为系统库版本差异更大但对于分发到同类发行版比如都是Ubuntu 22.04还是可行的。使用AppImage/Snap/Flatpak这些是Linux上新兴的应用打包格式它们将程序及其所有依赖包括特定版本的Qt打包成一个独立的文件可以在大多数现代Linux发行版上运行解决了依赖库版本冲突的“依赖地狱”问题。Qt Creator也支持直接生成AppImage包。5.4 清理与卸载如果你使用在线安装器安装卸载非常直接直接删除整个Qt安装目录如~/Qt。从你的~/.bashrc或~/.zshrc中移除之前添加的PATH和LD_LIBRARY_PATH环境变量。删除Qt Creator可能生成的配置文件通常位于~/.config/QtProject和~/.local/share/data/QtProject但这步不是必须的。如果你使用系统包管理器安装则使用对应的卸载命令例如sudo apt remove qt5-default qtbase5-dev等。但要注意这可能会卸载掉其他依赖这些包的系统软件操作前请谨慎确认。
RELATED — 相关阅读

相关资讯

LATEST — 最新资讯

最新发布

TODAY — 本日精选

新闻

WEEKLY — 本周精选

新闻

MONTHLY — 本月精选

新闻