紅葉~
L
O
A
D
I
N
G
紅葉
qt5-源码编译

qt5-源码编译

🧱 本文内容
在 Ubuntu 下源码编译 Qt 5.15.2,包括依赖安装、configure 配置,以及 std::numeric_limits 编译报错的解决方法。

📥 1. 下载源码

Qt 官方归档:https://download.qt.io/archive/qt

📂 2. 解压

1
tar xvf qt-everywhere-src-5.15.2.tar.xz

📦 3. 安装依赖

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
sudo apt-get install gcc
sudo apt-get install gedit
sudo apt-get install flex
sudo apt-get install bison
sudo apt-get install gperf
sudo apt-get install libxcb*
sudo apt-get install build-essential
sudo apt-get install libgl1-mesa-dev
sudo apt-get install libglu1-mesa-dev
sudo apt-get install libegl1-mesa-dev
sudo apt-get install freeglut3-dev
sudo apt-get install libxkbcommon-x11-dev
sudo apt-get install libxkbcommon-dev
sudo apt-get install libxrender-dev
sudo apt-get install libx11-dev
sudo apt-get install libx11-xcb-dev

⚙️ 4. 配置

切换到解压后的源码目录,运行 configure:

1
2
cd qt-everywhere-src-5.15.2
./configure
⚠️ 如果出现这个报错
1
2
qtbase/include/QtCore/../../src/corelib/global/qendian.h:333:54: error: incomplete type ‘std::numeric_limits’ used in nested name specifier
333 | { return QSpecialInteger(std::numeric_limits<T>::min()); }

解决方法:打开 qtbase/src/corelib/global/qglobal.h,加上头文件:

1
#include <limits>

然后重新运行:

1
./configure

先选 o:

再选 y:

🔨 5. 编译

1
make -j8
本文作者:紅葉
本文链接:https://swe-et.github.io/qt5/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可