You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 20.04下Qt5静态编译失败求助:求步骤及依赖库

Ubuntu 20.04 静态编译 Qt5 完整指南

一、安装全部依赖

先执行以下命令安装所有必要的编译工具和依赖库,避免因缺失依赖导致编译失败:

sudo apt update && sudo apt install -y build-essential 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-util-dev libxcb-xinerama0-dev libxcb-xkb-dev libxkbcommon-dev libxkbcommon-x11-dev libatspi2.0-dev libgl1-mesa-dev libglu1-mesa-dev

如果需要编译QtWebEngine,额外安装这些工具:

sudo apt install -y gperf bison flex ruby python3-pip
pip3 install jinja2 lxml

二、下载并解压Qt5源码

推荐选择LTS版本(如5.15.2),稳定性更高:

wget https://download.qt.io/archive/qt/5.15/5.15.2/single/qt-everywhere-src-5.15.2.tar.xz
tar -xf qt-everywhere-src-5.15.2.tar.xz
cd qt-everywhere-src-5.15.2

三、配置静态编译参数

执行configure命令时,务必指定正确的参数,以下是经过验证的通用配置(可根据需求调整):

./configure -prefix /opt/qt5-static \
            -static \
            -release \
            -opensource \
            -confirm-license \
            -nomake examples \
            -nomake tests \
            -skip qtwebengine \
            -qt-zlib \
            -qt-libpng \
            -qt-libjpeg \
            -qt-freetype \
            -qt-pcre \
            -qt-xcb \
            -no-opengl \
            -no-cups \
            -no-gif \
            -no-accessibility

参数说明:

  • -prefix /opt/qt5-static:指定静态Qt的安装路径,后续项目构建时会用到
  • -static:核心参数,开启静态编译模式
  • -nomake examples/tests:跳过示例和测试代码,大幅缩短编译时间
  • -skip qtwebengine:WebEngine编译耗时极长且依赖复杂,无需该模块可直接跳过
  • -no-opengl:若不需要OpenGL支持可关闭,需要则改为-opengl desktop

四、编译并安装

使用多线程编译加速($(nproc)会自动匹配CPU核心数):

make -j$(nproc)
sudo make install

五、验证静态编译结果

创建一个简单的测试项目,确认编译后的Qt为静态版本:

  1. 编写main.cpp:
#include <QApplication>
#include <QLabel>

int main(int argc, char *argv[]) {
    QApplication app(argc, argv);
    QLabel label("Hello Static Qt!");
    label.show();
    return app.exec();
}
  1. 编写test.pro:
QT       += core gui widgets
TARGET = static-test
TEMPLATE = app
SOURCES += main.cpp
  1. 用静态Qt的qmake构建:
/opt/qt5-static/bin/qmake test.pro
make
  1. 验证:运行./static-test能正常显示窗口,再执行ldd ./static-test,若输出not a dynamic executable或无Qt相关动态库依赖,说明静态编译成功。

注意事项

  • 若configure阶段报错,仔细查看终端输出的错误信息,通常会明确提示缺失的库,对应安装即可
  • 编译前确保系统内存充足,编译完整Qt(含WebEngine)至少需要8GB内存,否则可能因内存不足中断
  • 建议在源码目录外创建单独的build目录编译(如mkdir build && cd build && ../configure ...),方便后续清理

内容的提问来源于stack exchange,提问作者Dipak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 10:35:05