1. 前言
在跨平台开发中,许多团队选择在 Windows 上编写代码,在 Linux 上编译和部署 Qt 项目。本文将详细介绍在 Ubuntu 24.04 环境下,从零开始搭建 Qt 5.15.2 编译环境的方法,并给出所有必需的依赖包、下载链接以及详细的步骤说明,帮助你将 Windows 上开发的 Qt 项目顺利迁移到 Linux 编译。
在阅读过程中,你可以根据需要在对应位置插入截图。文中已预留了图片插入位置,方便你记录操作过程。
2. 环境准备总览
在开始之前,我们需要准备好以下核心组件:
| 组件 | 版本 | 说明 |
|---|---|---|
| 操作系统 | Ubuntu 24.04 LTS | 64 位桌面版或服务器版 |
| Qt 源码 | 5.15.2 | 从官方下载的源代码包 |
| 编译器 | GCC 9+ / Clang | 系统自带或通过 apt 安装 |
| 构建工具 | CMake 3.16+ 或 qmake | 根据项目类型选择 |
| 依赖库 | 见下文清单 | X11、OpenGL、SSL 等 |
图片插入位置:此处可插入一张 Ubuntu 24.04 系统信息截图或 Qt 5.15.2 官方发布页面截图。
3. 系统基础依赖安装
首先更新系统包列表,并安装编译 Qt 所必需的基础开发工具和库。打开终端,依次执行以下命令:
bash
sudo apt update
sudo apt install -y build-essential perl python3 git
sudo apt install -y libfontconfig1-dev libfreetype6-dev libx11-dev \
libx11-xcb-dev libxext-dev libxfixes-dev libxi-dev \
libxrender-dev libxcb1-dev libxcb-glx0-dev libxcb-keysyms1-dev \
libxcb-image0-dev libxcb-shm0-dev libxcb-icccm4-dev \
libxcb-sync0-dev libxcb-xfixes0-dev libxcb-shape0-dev \
libxcb-randr0-dev libxcb-render-util0-dev libxcb-util0-dev \
libxcb-xinerama0-dev libxcb-xkb-dev libxkbcommon-dev \
libxkbcommon-x11-dev
图片插入位置 :此处可插入终端执行
sudo apt install命令时的截图。
接着安装 OpenGL、SSL 和多媒体相关依赖:
bash
sudo apt install -y libgl1-mesa-dev libglu1-mesa-dev
sudo apt install -y libssl-dev libopenal-dev libpulse-dev \
libasound2-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
图片插入位置:可插入依赖安装过程中终端输出的截图。
4. 下载 Qt 5.15.2 源码
所有 Qt 版本均通过官方下载页提供。请注意,Qt 5.15.2 属于 LTS 版本,需要持有 Qt 账号才能从官方仓库下载。如果你没有商业许可,也可以使用社区维护的镜像或第三方源。
4.1 官方下载(推荐)
- 访问 Qt 官方下载页面:
https://download.qt.io/archive/qt/5.15/5.15.2/ - 选择
single目录下的qt-everywhere-src-5.15.2.tar.xz源码包。 - 直接使用 wget 下载:
bash
wget https://download.qt.io/archive/qt/5.15/5.15.2/single/qt-everywhere-src-5.15.2.tar.xz
图片插入位置:此处可插入 Qt 下载页面中 5.15.2 源码包高亮显示的截图。
4.2 备用下载
如果官方下载速度较慢,也可以使用国内镜像,例如:
- 清华大学开源镜像站:
https://mirrors.tuna.tsinghua.edu.cn/qt/archive/qt/5.15/5.15.2/single/ - 中科大镜像站:
https://mirrors.ustc.edu.cn/qtproject/archive/qt/5.15/5.15.2/single/
5. 解压并配置编译选项
下载完成后,解压源码包,并进入目录:
bash
tar -xf qt-everywhere-src-5.15.2.tar.xz
cd qt-everywhere-src-5.15.2
Qt 源码使用 configure 脚本进行配置。你可以根据项目需求定制编译选项。下面是一个常用的配置命令,它包含了大多数桌面应用所需的模块:
bash
./configure -prefix /opt/Qt5.15.2 \
-release \
-opensource \
-confirm-license \
-nomake examples \
-nomake tests \
-skip qtwebengine \
-qt-zlib \
-qt-libpng \
-qt-libjpeg \
-qt-freetype \
-qt-harfbuzz \
-qt-pcre \
-xcb \
-xcb-xlib \
-bundled-xcb-xinput \
-ssl \
-opengl desktop
参数说明:
-prefix /opt/Qt5.15.2:安装路径,你可以根据个人习惯修改。-skip qtwebengine:跳过体积庞大的 QtWebEngine,如果项目不需要可以跳过,大幅缩短编译时间。-opengl desktop:使用桌面 OpenGL,避免依赖 EGL 等额外库。
图片插入位置:此处可插入终端中运行 configure 命令时的输出截图。
6. 编译与安装
配置成功后,屏幕会显示 Qt 的配置摘要。确认无误后,开始编译。编译时间取决于机器性能,通常需要 30 分钟到数小时不等。
bash
make -j$(nproc)
-j$(nproc) 会使用所有可用 CPU 核心加速编译。编译完成后,安装到指定目录:
bash
sudo make install
图片插入位置:可插入编译过程中的进度截图,以及安装完成后的提示信息截图。
7. 配置环境变量
安装完成后,为了在终端直接使用 qmake 或 qmake5 命令,需要将 Qt 的 bin 目录加入 PATH 环境变量。编辑 ~/.bashrc 文件,在末尾添加以下内容:
bash
export PATH=/opt/Qt5.15.2/bin:$PATH
export LD_LIBRARY_PATH=/opt/Qt5.15.2/lib:$LD_LIBRARY_PATH
export QT_PLUGIN_PATH=/opt/Qt5.15.2/plugins:$QT_PLUGIN_PATH
然后使配置生效:
bash
source ~/.bashrc
验证安装是否成功:
bash
qmake -v
如果输出类似 QMake version 3.1 并显示 Qt 5.15.2 的字样,说明配置成功。
图片插入位置 :此处可插入终端执行
qmake -v的截图。
8. 编译你的 Qt 项目
现在,你已经拥有了完整的 Qt 5.15.2 编译环境。将 Windows 上开发的 Qt 项目源码拷贝到 Ubuntu 中,进入项目目录,使用以下命令编译:
如果你使用 qmake:
bash
qmake your_project.pro
make
如果项目使用 CMake:
bash
mkdir build && cd build
cmake .. -DCMAKE_PREFIX_PATH=/opt/Qt5.15.2
make
如果编译过程中报错缺少某些模块,请根据报错信息重新运行 Qt 的 configure 并添加相应模块,再重新编译 Qt 本身。
图片插入位置:此处可插入编译自己项目时的终端输出截图。
9. 常见问题与排错
9.1 找不到 qmake 命令
确保环境变量已正确设置,并重新打开终端或执行 source ~/.bashrc。
9.2 缺少 libxcb 相关库
在 Ubuntu 24.04 中,默认的 libxcb 库可能版本较新,如果 Qt 5.15.2 配置时仍然提示找不到,可以尝试安装 libxcb-util1 等早期版本,或者使用 -qt-xcb 选项让 Qt 自带编译一份 xcb 支持。
9.3 编译 qtwebengine 失败
如果项目不需要 WebEngine,强烈建议在配置时使用 -skip qtwebengine 跳过。如果确实需要,可以提前安装 libnss3-dev、libnspr4-dev 等依赖,并参考 Qt 官方文档。
图片插入位置:可插入典型错误提示的截图,或排错成功的终端界面。
10. 总结
本文详细介绍了在 Ubuntu 24.04 中编译 Qt 5.15.2 项目的完整流程,包括系统依赖安装、源码下载、配置、编译、环境变量设置以及项目编译实操。通过以上步骤,你可以顺利地将 Windows 上开发的 Qt 项目迁移到 Linux 平台进行编译和部署。
如果你在操作过程中遇到任何问题,欢迎在评论区留言交流。
图片插入位置:文末可插入一张编译成功的项目运行截图,作为成果展示。