摘要:在 Linux 下编译 Qt 源码需要以下步骤:--- 1. 确保系统满足依赖在编译 Qt 源码之前,必须确保你的系统安装了编译 Qt 所需的工具和库。一般需要以下依赖:- C++ 编译器(如 `gcc` 或 `clang`)- Python3(一些构建工具依赖它)- Perl、Git-...
在 Linux 下编译 Qt 源码需要以下步骤:
---
1. 确保系统满足依赖
在编译 Qt 源码之前,必须确保你的系统安装了编译 Qt 所需的工具和库。一般需要以下依赖:
- C++ 编译器(如 `gcc` 或 `clang`)
- Python3(一些构建工具依赖它)
- Perl、Git
- 工具链(如 `make` 或 `ninja`)
- 常用的构建工具(如 `CMake`、`pkg-config`)
- 必备开发库(如 X11、OpenGL、OpenSSL 等)
以 Debian/Ubuntu 系统为例安装依赖:
```bash
sudo apt update && sudo apt install -y \
build-essential \
perl \
python3 \
git \
libxext-dev \
libxrandr-dev \
libgl-dev \
libxcb1-dev \
libx11-dev \
libx11-xcb-dev \
libxcb-glx0-dev \
libxcb-keysyms1-dev \
libxcb-image0-dev \
libxcb-shm0-dev \
libxcb-icccm4-dev \
libxcb-sync-dev \
libxcb-xfixes0-dev \
libxcb-shape0-dev \
libxcb-randr0-dev \
libxcb-render-util0-dev \
libxcb-util-dev \
libxcb-xinerama0-dev \
libfontconfig1-dev \
libfreetype6-dev \
libssl-dev \
libinput-dev \
libegl-dev \
libxkbcommon-dev \
libdrm-dev \
libwayland-dev
```
其他发行版:
- 在 Fedora 用 `dnf`、Arch 用 `pacman` 安装类似的软件包,包名略有差异。
---
2. 获取 Qt 源码
你可以从 [Qt 官方网站](https://www.qt.io/offline-installers) 下载源码,或者使用 `git` 从 Qt 项目仓库拉取源码。
使用 Git:
```bash
git clone --branch v6.6.0 https://code.qt.io/qt/qt5.git
cd qt5
git submodule update --init --recursive
```
请确保使用你需要的目标版本(如 `v6.6.0`)。
如果你希望构建 Qt 6,请检查默认分支为 `dev` 或其他指定版本,比如 `6.x`。选择合适的分支即可。
---
3. 创建构建目录
Qt 支持 外部构建(out-of-source build),建议在源码目录外创建一个单独的构建目录:
```bash
mkdir qt-build
cd qt-build
```
---
4. 配置 Qt 源码
从 Qt 6 开始,Qt 使用 `CMake` 作为主要构建系统。
在构建之前,需要设置构建选项。以下是一个常规配置命令:
```bash
cmake -G "Ninja" \
-DCMAKE_INSTALL_PREFIX=/opt/qt6 \
-DCMAKE_BUILD_TYPE=Release \
-DQT_BUILD_EXAMPLES=OFF \
../qt5
```
选项说明:
- `-DCMAKE_INSTALL_PREFIX`:安装路径(比如 `/opt/qt6`)。之后你可以方便地通过环境变量引入Qt库。
- `-DCMAKE_BUILD_TYPE`:可以设为 `Release` 或 `Debug`。
- `-DQT_BUILD_EXAMPLES=OFF`:是否构建示例程序。
- `../qt5`:指定 Qt 源代码目录。
如果你希望配置更详细的编译功能,可以参考 Qt 官方文档,或者运行 `cmake-gui` 使用图形化界面配置。
---
5. 编译 Qt
配置完成后,使用如下命令开始编译:
```bash
cmake --build . --parallel $(nproc)
```
这里的选项 `--parallel $(nproc)` 会利用所有 CPU 核心加速编译。如果不想使用所有核心,你可以指定核心数量,比如 `--parallel 4`。
---
6. 安装 Qt
编译完成后,将 Qt 安装到指定的目录(`CMAKE_INSTALL_PREFIX` 设置的路径):
```bash
sudo cmake --install .
```
---
7. 设置环境变量
为了能够在命令行和开发工具中正确使用你编译的 Qt,建议配置环境变量。
将以下内容添加到 `~/.bashrc` 或 `~/.zshrc` 中:
```bash
export PATH=/opt/qt6/bin:$PATH
export LD_LIBRARY_PATH=/opt/qt6/lib:$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=/opt/qt6/lib/pkgconfig:$PKG_CONFIG_PATH
```
然后运行:
```bash
source ~/.bashrc
```
---
8. 验证安装
```bash
qmake --version
```
或者:
```bash
qmlscene
```
你应该看到 Qt 的相关版本信息。如果一切正常,你现在可以开始使用你编译的 Qt 了!
---
9. 可选:运行测试
如果希望在安装前测试你编译的 Qt,可以运行:
```bash
ctest --output-on-failure
```
---
常见问题
1. 找不到一些依赖:确保所有开发库、头文件和工具链已安装。
2. 编译缓慢:将 `--parallel` 参数设置为较大的值,利用更多 CPU 核心。
3. UI 渲染相关问题:确保安装了 X11 或 Wayland 相关的依赖。
4. 安装路径问题:编译完成后,可以修改环境变量,确保系统指向正确的 Qt 库和工具。
如果问题更复杂,请查看 Qt 官方文档或者向社区寻求帮助。