如何在 Ubuntu Linux 上从源代码构建 Qt 6.2.2

系统 Linux
在这篇文章中我提供有关在 Ubuntu Linux 上从源代码构建 Qt 6.2.2的简短教程。

 Qt 6.2.0 是 Qt 6 系列的第3个版本,功能与 Qt 5 相当,因此有望成为第一个被新 Qt 项目或从 Qt 5 移植的项目广泛采用的版本。在这篇文章中我提供有关在 Ubuntu Linux 上从源代码构建 Qt 6.2.2的简短教程。

Ubuntu Desktop Linux 是使用最广泛的桌面 Linux 发行版之一,在撰写本文时,20.04.3 版是最新的长期支持 (LTS) 版本。虽然您可以使用 Qt 维护工具下载预编译的 Qt 6.2.0 二进制文件,但出于多种原因,您可能更希望从源代码构建它:

  1.  您可能不想使用 Qt 维护工具或创建运行它所需的 Qt 帐户。
  2.  您希望生成自己的二进制文件,而不是 Qt 公司提供的二进制文件。
  3.  您希望在构建中包含一些源代码补丁或其他更改。
  4.  您想根据需要自定义配置。
  5.  您想更好地了解从源代码构建 Qt 的过程。

一些警告。首先,这些说明仅适用于 Ubuntu Desktop Linux 20.04.3 LTS。虽然过程应该是相似的,但其他 Ubuntu 版本或 Linux 发行版的依赖项和命令会有所不同。其次,我还没有启用所有 Qt 功能。某些功能可能需要安装额外的第三方依赖项才能在配置中启用。第三:构建需要一些时间(通常是几个小时),具体取决于构建机器上可用的 CPU 内核的速度和数量。

准备

要从源代码构建所有 Qt,您需要至少 30GB 的可用磁盘空间,最好至少有 16GB 的虚拟内存 (RAM),尤其是在构建 qtwebengine 时。

有许多第三方库和命令的依赖项。此命令应安装必要的软件包: 

  1. sudo apt install bison build-essential clang flex gperf \  
  2. libatspi2.0-dev libbluetooth-dev libclang-dev libcups2-dev libdrm-dev \  
  3. libegl1-mesa-dev libfontconfig1-dev libfreetype6-dev \  
  4. libgstreamer1.0-dev libhunspell-dev libnss3-dev libopengl-dev \  
  5. libpulse-dev libssl-dev libts-dev libx11-dev libx11-xcb-dev \  
  6. libxcb-glx0-dev libxcb-icccm4-dev libxcb-image0-dev \  
  7. libxcb-keysyms1-dev libxcb-randr0-dev libxcb-render-util0-dev \  
  8. libxcb-shape0-dev libxcb-shm0-dev libxcb-sync-dev libxcb-util-dev \  
  9. libxcb-xfixes0-dev libxcb-xinerama0-dev libxcb-xkb-dev libxcb1-dev \  
  10. libxcomposite-dev libxcursor-dev libxdamage-dev libxext-dev \  
  11. libxfixes-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev \  
  12. libxkbfile-dev libxrandr-dev libxrender-dev libxshmfence-dev \  
  13. libxshmfence1 llvm ninja-build nodejs python-is-python2 python2 

Qt 6 现在使用cmake来构建 Qt,一个问题是 Qt 6.2.0 需要cmake 3.19 或更高版本,但 Ubuntu 20.04 只提供 3.16 版本。我选择从源代码构建最新版本的cmake(在撰写本文时为 3.21.2),使用这些命令只花了几分钟: 

  1. wget https://github.com/Kitware/CMake/releases/download/v3.21.2/cmake-3.21.2.tar.gz  
  2. tar xf cmake-3.21.2.tar.gz  
  3. cd cmake-3.21.2  
  4. ./configure  
  5. make  
  6. sudo make install  
  7. cd ..  
  8. rm -rf cmake-3.21.2 

或者你也可以使用snap安装,也将得到最新版本。

sudo snap install cmake

这会将较新的cmake安装在 /usr/local/bin 中,即使您的 Ubuntu 安装中存在较旧的版本,Qt 构建也应该在该位置获取它。

构建

我们现在准备构建 Qt。首先,让我们获取源代码: 

  1. wget https://download.qt.io/official_releases/qt/6.2/6.2.2/single/qt-everywhere-src-6.2.2.tar.xz 

下载后从存档中提取它:

tar xf qt-everywhere-src-6.2.2.tar.xz

cd qt-everywhere-src-6.2.2

现在配置,指定安装位置。我选择安装在/usr/local/Qt6。如果您安装了其他 Qt 版本,它们通常会放在 /usr/local/Qt 中,因此这不会与它们冲突。

./configure -prefix /usr/local/Qt6

这将需要一些时间,但如果存在所有必需的依赖项,应该会成功。

如果需要,可以配置或启用更多功能,例如数据库插件。

我们现在已准备好构建,这需要一些时间:

cmake --build .

如果它成功完成,我们现在可以将它安装在 /usr/local/Qt6 中:

sudo cmake --install .

我们还想为 Qt Assistant 构建文档:

cmake --build . --target docs

然后安装文档:

sudo cmake --build . --target install_docs

您现在可以删除源和构建目录。/usr/local/Qt6 中的实际安装大小应该约为 1 GB。

测试

安装后,您可以对安装进行一些基本检查:

运行 Qt Designer (/usr/local/Qt6/bin/designer) 并验证是否出现。

将您的 Qt Creator IDE 配置为指向 nwq Qt 6 版本并测试您是否可以编译和运行您自己的一些代码。

概括

我希望你发现本教程有用。我鼓励您尝试从源代码构建 Qt 6,如果只是为了了解有关该过程的更多信息。如果您必须为 Qt 的维护工具不直接支持的平台(例如不太常见的 Linux 发行版或嵌入式平台)构建 Qt,则知道如何执行此操作是一项有用的技能。您可以在此处了解有关 Qt 6 的更多信息。 

 

责任编辑:庞桂玉 来源: Linux公社
相关推荐

2017-03-29 16:18:11

LinuxUbuntuRedmine

2021-07-12 14:47:16

UbuntuZlib代码

2021-09-11 15:41:55

UbuntuDropbox云服务

2022-10-24 08:01:11

2017-03-07 13:36:48

源代码Tomcat开源

2020-10-06 18:55:16

Ubuntu LinuIPv6网络协议

2021-06-15 09:46:43

UbuntuLinuxCode Blocks

2017-02-09 09:30:18

UbuntuDokuWikiApache

2020-04-08 12:20:25

UbuntuLinuxOracle Java

2020-03-24 07:00:00

UbuntuLinuxNetbeans

2014-03-31 09:45:33

Ubuntu LinuUbuntu 13.1

2014-05-07 09:56:48

Docker管理Linux容器

2020-03-20 18:19:05

UbuntuLinuxNetbeans

2021-03-07 11:46:02

UbuntuLinuxErlang

2018-10-15 15:23:50

UbuntupipPython

2019-08-30 11:20:28

UbuntuVirtualBoxLinux

2023-08-08 12:38:52

2024-01-04 11:50:00

UbuntuDocker

2021-12-04 21:45:19

UbuntuLinux开源

2019-08-02 15:30:42

UbuntuMongoDB命令
点赞
收藏

51CTO技术栈公众号