本文要点
适用于需要在 Ubuntu 上自行构建 Qt 5.15.x 的场景。
整理了 Qt Base、OpenGL、xcb、WebEngine、Multimedia 等依赖安装命令。
补充 LLVM 路径、configure、make、install_docs 等关键步骤。
Qt源码编译-Ubuntu平台 Qt官网已取消了Qt 5.15版本二进制安装包。如果要安装Qt 5.15需要下载源码自行编译安装或使用商业授权版本。
Qt 是一个功能强大的跨平台开发框架,支持从嵌入式系统到桌面应用程序的开发。如果你希望在 Ubuntu 平台上从源码编译 Qt,这篇教程将带你一步步完成整个过程。
1.前提条件 1.1 环境介绍
操作系统: Ubuntu20
系统内存: 32G
Qt版本: 5.15.15
1.2 安装必要的开发工具 在编译 Qt 源码之前,首先需要确保你的系统具备编译环境以及必要的依赖项。打开终端并运行以下命令来安装必备的工具:
1 2 3 4 5 sudo apt-get upgrade sudo apt-get update sudo apt-get install build-essential perl python3 git python sudo apt-get install python3-pip sudo apt-get install python2.7 python2.7-dev python2
1.3 环境配置 在系统更新界面中,勾选下载源码选项。
1.4安装依赖库 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 # you need to enable the "Source code" option in Software and Updates > Ubuntu Software under the "Downloadable from the Internet" section.sudo apt-get build-dep qtbase5-dev # Qt Basesudo apt-get install bison build-essential qt5-default sudo apt-get install perl git gperf ruby sudo apt-get install libclang-10-dev llvm-10* # Qt OpenGLsudo apt-get install libgl1-mesa-dev libglu1-mesa-dev libegl1-mesa-dev freeglut* libgles* libglew* # Libxcbsudo apt-get install '^libxcb.*-dev' libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev sudo apt install libxrandr-dev sudo apt-get install xcb* libxcb* libx11* libxkbcommon* libxrender* libxi-dev sudo apt install libdouble-conversion-dev # Qt WebKitsudo apt-get install flex libicu-dev libxslt-dev ruby gperf # Qt WebEnginesudo apt-get install build-essential python2 libasound2-dev libdrm-dev libegl1-mesa-dev libnss3-dev libpci-dev libpulse-dev libudev-dev libxtst-dev gyp ninja-build sudo apt-get install libxcursor-dev libxcomposite-dev libfontconfig1-dev libxss-dev libsrtp2-dev libwebp-dev libjsoncpp-dev libopus-dev libminizip-dev libavutil-dev libavformat-dev libavcodec-dev libvpx-dev libsnappy-dev libre2-dev libprotobuf-dev protobuf-compiler sudo apt-get install libdbus-1-dev libevent-dev libcap-dev bison nodejs npmsudo apt-get install libssl-dev libxdamage-dev sudo apt-get install libdus* dbus* sudo apt-get install fontconfig libcap-dev libxext-dev sudo apt-get install libgstreamer-gl1.0-0 libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev sudo apt-get install libcups2* pulseaudio* alsa-* mesa-* systemd* system-* libgudev-1.0-dev libatspi2.0* at-spi2-* libclipper-dev sudo apt-get install libdbus-1-dev libcap-dev sudo apt-get install libx11-* sudo apt-get install libx11* sudo apt-get install libxcb-* sudo apt-get install libxcb* sudo apt-get install libxkbcommon-devsudo sudo apt-get install libxkbfile-dev sudo apt install llvm sudo apt-get install libxkb-* sudo apt-get install libxkb* # QtBlueToothsudo apt-get install bluez* bluetooth libbluetooth* # Qt Multimediasudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-good1.0-dev libgstreamer-plugins-bad1.0-dev sudo apt-get install libwayland-dev sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev # QDoc Documentation Generator Toolsudo apt install clang libclang-dev
1.5设置LLVM路径 编译QDoc文档需要使用到LLVM工具,需要设置环境变量告知系统LLVM的路径
1 2 3 4 #查询LLVM路径 llvm-config --prefix #设置LLVM路径,具体值为上述查询结果export LLVM_INSTALL_DIR=/usr/lib/llvm-10
2.下载 Qt 源码 首先,选择你想要编译的 Qt 版本。你可以从 Qt 官方下载页面获取源码包,也可以直接通过 Git 仓库克隆源码。
2.1 从官网获取源码 你可以访问 Qt 官网下载你所需的版本。下载完成后,解压源码:
1 2 tar -xvf qt-everywhere-src-<version>.tar.xz cd qt-everywhere-src-<version>
2.2 使用 Git 克隆源码 使用 Git 克隆最新的 Qt 源码:
1 2 3 git clone https://code.qt.io/qt/qt5.git cd qt5 git checkout <version> # 根据你需要的版本号替换 <version>
运行以下命令更新子模块:
3.配置 Qt 源码编译选项 Qt 编译时可以指定很多选项来优化编译过程或选择不同的功能模块。你可以通过 ./configure 脚本进行配置。
3.1 基本配置 在 Qt 源码目录下运行以下命令:
1 ./configure -opensource -confirm-license -release -prefix /opt/qt5.15.15
如图所示,无任何错误提示,表示配置成功。
3.2 配置特定模块 如果你只需要特定模块,例如不需编译 Qt Webengine 模块,你可以在配置时指定:
1 ./configure -opensource -confirm-license -skip qtwebengine -prefix /opt/qt5.15.15
-skip 选项用于跳过不需要的模块,减少编译时间。
4. 编译 Qt 配置完成后,就可以开始编译了。编译 Qt 源码可能需要较长时间,具体取决于你的系统性能。
4.1 启动编译 运行以下命令启动编译:
-j$(nproc) 会根据你机器的 CPU 核心数并行编译,以加快编译速度。如果你想查看进度,可以去掉 -j参数。
4.2 安装编译后的 Qt 编译完成后,可以运行以下命令将编译好的 Qt 安装到指定路径:
4.3 编译Qt文档
4.3 安装Qt文档
5. 可能遇到的问题及解决方案 5.1 内存不足 如果编译时遇到内存不足的问题,可以尝试减小并行编译的线程数,或者增加交换空间。
总结 通过上述步骤,你可以在 Ubuntu 平台上成功编译并安装 Qt 源码。编译 Qt 虽然耗时较长,但这也让你可以灵活定制功能模块,适应不同的开发需求。如果你在编译过程中遇到问题,可以参考 Qt 官方文档或社区论坛来寻找帮助。