源码编译 Qt 6.5.7
构建环境
环境要求
用于进行Qt 6.5.7源码编译的机器环境需满足以下要求:
- 可用于编译的物理内存 + SWAP交换区 空间 > 40GB;同等条件下,物理内存越大,编译速度越快
- 可用于编译的磁盘空间 > 160GB
- 建议用于编译的CPU核心数 ≥ 16
规避内存不足问题
# 当物理内存无法满足编译条件时,可提供足够大的SWAP
# 取消当前所有SWAP文件
sudo swapoff -a
# 取消指定SWAP文件则指定具体的SWAP文件名, 如:
# sudo swap off /swapfile
# 创建一个40GB的SWAP文件/swapfile
# 若已存在SWAP文件, 重新分配大小则先取消该文件的挂载, 然后重新分配该文件的大小
sudo fallocate -l 40G /swapfile
# 设置权限, 否则系统拒绝使用
sudo chmod 600 /swapfile
# 格式化为 SWAP
sudo mkswap /swapfile
# 启用
sudo swapon /swapfile
# 检查是否生效
free -h
# 若希望重启操作系统后新增 SWAP 仍然生效,则编辑 /etc/fstab, 加上这一行
/swapfile none swap sw 0 0
# 临时减少 Swap 使用频率(强烈建议):
sudo sysctl vm.swappiness=10
# 若希望减少 SWAP 使用频率配置永久生效, 则
echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf构建依赖
- 下述构建过程将启用Qt 6.5.7在Linux环境下的所有组件功能。
凡Qt自带副本的依赖项,均使用Qt自带副本进行编译而不使用系统环境所提供版本:
- zlib
- libpng
- freetype
- harfbuzz
- pcre2
- libjpeg
- sqlite
- webengine-*
- double-conversion
请注意部分软件包,在不同版本的操作系统之上包名不同,若出现部分包不存在的情况,请搜索在该系统上相应包,获取到实际的包名进行安装。若受限于系统版本而无法直接安装时请选择从源码编译安装。
更新缓存
sudo apt-get update -y
sudo apt-get install -y software-properties-common
sudo add-apt-repository universe
sudo apt-get update -y 编译工具
sudo apt-get install -y \
build-essential \
perl \
git \
ninja-build \
pkg-config \
gcc \
g++ \
cmake \
gdb \
wget \
curl \
ccache
#clang和llvm装12-15版本
sudo apt-get install -y \
clang-14 \
libclang-14-dev \
llvm-14 \
llvm-14-dev \
npm
升级pthread、ldd
sudo apt-get install -y \
libpthread* \
ldd基础依赖
sudo apt-get install -y \
libdbus-1-dev \
libinput-dev \
libmtdev-dev \
libevdev-dev非开发环境(运行时库)
# libudev-dev的运行时库
sudo apt-get install -y \
libudev1XCB&X11全家桶
必须依赖项
# xcb-proto提供协议定义文件,用于生成XCB的各种扩展库(如XRandR、Xinerama、XInput等;编译依赖X11或Qt/XCB后端的程序时,需要它生成头文件和接口
# X11 协议头文件和开发包
sudo apt-get install -y \
xcb-proto \
libxproto-dev
sudo apt-get install -y \
libx11-dev \
libx11-xcb-dev \
libxext-dev \
libxfixes-dev \
libxi-dev \
libxrender-dev \
libxrandr-dev \
libxkbcommon-dev libxkbcommon-x11-dev \
libxinerama-dev \
libxss-dev \
libxtst-dev \
libxcursor-dev \
libxdamage-dev \
libxcomposite-dev \
libxshmfence-dev \
libxkbfile-dev# XCB
# libxcb-xv-dev在不同版本Ubuntu上包名不同, 根据实际搜索结果调整包名
sudo apt-get install -y \
libxcb1-dev \
libxcb-keysyms1-dev \
libxcb-render0-dev \
libxcb-shape0-dev \
libxcb-shm0-dev \
libxcb-xfixes0-dev \
libxcb-icccm4-dev \
libxcb-image0-dev \
libxcb-util-dev \
libxcb-xinerama0-dev \
libxcb-randr0-dev \
libxcb-sync-dev \
libxcb-xkb-dev \
libxcb-cursor-dev \
libxcb-render-util0-dev \
libxcb-ewmh-dev \
libxcb-util0-dev \
libsm-dev \
libxcb-xinput-dev \
libxcb-xv-dev \
libxcb-xv0-dev \
libxcb-xvmc0-dev \
libxcb-glx0-dev运行时库(非开发环境)
# 核心 XCB 运行时库,提供基本的 X11 客户端接口
# XCB 的工具库,提供常用函数、辅助数据结构和便利 API
# 支持键盘按键映射(KeySym)解析,用于处理键盘输入
# 图像处理扩展库,允许 X11 图像操作(像素数据读取/写入)
# ICCCM(Inter-Client Communication Conventions Manual)支持库,用于客户端间通信和窗口管理约定
# X Render 扩展工具库,提供渲染相关的辅助函数(抗锯齿、Alpha 混合等)
# Xinerama 扩展支持库,用于多显示器管理
# X11 光标管理扩展库,允许程序操作鼠标光标
# X Keyboard 扩展库,提供键盘布局、按键状态和事件管理
# EWMH(Extended Window Manager Hints)扩展,窗口管理器交互
sudo apt-get install -y \
libxcb1 \
libxcb-util1 \
libxcb-keysyms1 \
libxcb-image0 \
libxcb-icccm4 \
libxcb-render-util0 \
libxcb-xinerama0 \
libxcb-cursor0 \
libxcb-xkb1 \
libxcb-ewmh2附加项
# XCB
# XCB 国际化(Input Method)扩展。
# X Composite 扩展,用于透明窗口、合成效果。
# Damage 扩展,用于检测屏幕更新区域,常用于远程桌面和 compositor
# DPMS 扩展,用于显示器电源管理
# DRI2/DRI3(Direct Rendering Infrastructure)开发包,用于 GPU 加速渲染
# GLX 扩展开发包,OpenGL 与 X11 窗口交互
# Present 扩展开发包,用于同步显示更新,减少撕裂
# Record 扩展,用于记录或截取 X11 事件
# RES 扩展开发包,用于屏幕分辨率管理
# Screensaver 扩展,用于防屏保管理
# XFree86 DRI 扩展,用于 GPU 访问
# X资源管理(X Resource Manager)扩展,用于应用配置
# XTest 扩展,用于模拟输入事件(键盘/鼠标)
# X Video 扩展开发包,用于视频渲染
# X Video Motion Compensation 扩展开发包,用于硬件视频解码加速
# XFree86 VidMode 扩展开发包,用于屏幕模式切换和显存管理
# 数据压缩库和命令行工具,某些 X11 扩展或缓存会用到压缩
# tslib 的开发包,用于旧式触摸屏输入事件处理(多用于嵌入式设备)
# XSLT 样式表处理库开发包,用于 XML 转换和解析,很多桌面程序或构建工具可能依赖它
# XSLT 样式表处理库开发包,用于 XML 转换和解析,很多桌面程序或构建工具可能依赖它
sudo apt-get install -y \
\
libxcb-imdkit-dev \
libxcb-composite0-dev \
libxcb-damage0-dev \
libxcb-dpms0-dev \
libxcb-dri2-0-dev \
libxcb-present-dev \
libxcb-record0-dev \
libxcb-res0-dev \
libxcb-screensaver0-dev \
libxcb-xf86dri0-dev \
libxcb-xrm-dev \
libxcb-xtest0-dev \
\
libxxf86vm-dev \
libzstd-dev \
libts-dev \
libxslt-dev \
libxslt1-dev运行时库(非开发环境)
# XCB 国际化(Input Method)扩展。
# Damage 扩展,用于检测屏幕更新区域,常用于远程桌面和 compositor
# DPMS 扩展,用于显示器电源管理
# DRI2/DRI3(Direct Rendering Infrastructure)开发包,用于 GPU 加速渲染
# Record 扩展,用于记录或截取 X11 事件
# Screensaver 扩展,用于防屏保管理
# XFree86 DRI 扩展,用于 GPU 访问
# X资源管理(X Resource Manager)扩展,用于应用配置
# XTest 扩展,用于模拟输入事件(键盘/鼠标)
#X Video Motion Compensation 扩展开发包,用于硬件视频解码加速
# XCB 文档,包含接口说明和协议文档
sudo apt-get install -y \
libxcb-imdkit0 \
libxcb-damage0 \
libxcb-dpms0 \
libxcb-dri3-dev \
libxcb-record0 \
libxcb-screensaver0 \
libxcb-xf86dri0 \
libxcb-xrm0 \
libxcb-xtest0 \
libxcb-xvmc0 \
libxcb-doc# X11
# Damage 扩展运行时库,检测屏幕区域更新
# XKB common 文档和工具,用于键盘布局管理
# XKB common 文档和工具,用于键盘布局管理
# 用于 GPU/CPU 之间的同步 fence,配合 OpenGL/DRI 渲染
# X11 核心库文档
# X11 的 Perl 模块,主要用于测试、自动化、窗口管理或 X11 接口交互
# X11 的 Perl 模块,主要用于测试、自动化、窗口管理或 X11 接口交互
# X11 的 Perl 模块,主要用于测试、自动化、窗口管理或 X11 接口交互
# X11 的 Perl 模块,主要用于测试、自动化、窗口管理或 X11 接口交互
# X11 的 Perl 模块,主要用于测试、自动化、窗口管理或 X11 接口交互
# X11 的 Perl 模块,主要用于测试、自动化、窗口管理或 X11 接口交互
# xine 多媒体框架的二进制和开发包,支持音视频播放和各种解码器插件
# xine 多媒体框架的二进制和开发包,支持音视频播放和各种解码器插件
# xine 多媒体框架的二进制和开发包,支持音视频播放和各种解码器插件
# xine 多媒体框架的二进制和开发包,支持音视频播放和各种解码器插件
# 数据压缩库和命令行工具,某些 X11 扩展或缓存会用到压缩
sudo apt-get install -y \
libxdamage1 \
libxkbcommon-doc \
libxkbcommon-tools \
libxshmfence1 \
libx11-doc \
libx11-freedesktop-desktopentry-perl \
libx11-guitest-perl \
libx11-keyboard-perl \
libx11-protocol-other-perl \
libx11-windowhierarchy-perl \
libx11-xcb-perl \
libxine2-bin \
libxine2-dev \
libxine2-misc-plugins \
libxine2-plugins \
\
zstdOpenGL
# OpenGL 开发包,提供核心 OpenGL API 头文件和库
# EGL 开发包,用于 OpenGL/ES 与窗口系统(X11/Wayland)交互
# OpenGL ES 2.x 开发包,适合嵌入式或移动平台
# GLU(OpenGL Utility Library)开发包,提供矩阵、曲面和辅助函数
# GLib 2 开发包,提供数据结构、事件循环、线程、字符串处理等通用基础功能
# Mesa 图形库通用开发文件,OpenGL/OpenGL ES 的基础依赖
# 一般用于提供标准 OpenGL 链接接口(大部分发行版通过 Mesa 提供实现)
# GLFW 库开发包,用于创建窗口、OpenGL 上下文和处理输入事件
# SDL 1.2 开发包,提供跨平台窗口、渲染、输入和音频管理接口
sudo apt-get install -y \
libgl1-mesa-dev \
libegl1-mesa-dev \
libgles2-mesa-dev \
libglu1-mesa-dev \
libglib2.0-dev \
mesa-common-dev \
libopengl-dev \
libglfw3-dev \
libsdl1.2-dev运行时
# GLib 2 的运行时库
# EGL 的运行时库,用于程序实际渲染
sudo apt-get install -y \
libglib2.0-0 \
libegl1-mesaOpenSSL
sudo apt-get install -y \
libssl-dev图形、字体
sudo apt-get install -y \
libfontconfig1-dev \
libvulkan-dev \
libvulkan1 \
mesa-common-dev \
libglu1-mesa-dev \
freeglut3-dev \
libgtk-3-dev \
libgtk2.0-dev \
libjpeg-dev \
libfreetype6-dev
蓝牙
sudo apt-get install -y \
libbluetooth-dev \
bluez 串口
sudo apt-get install -y \
libudev-dev \
libserialport-dev多媒体
sudo apt-get install -y \
libasound2-dev \
libpipewire-0.3-dev \
libpulse-dev# GStreamer
sudo apt-get install -y \
libgstreamer1.0-dev \
libgstreamer-plugins-base1.0-dev \
gstreamer1.0-plugins-base \
gstreamer1.0-plugins-good \
gstreamer1.0-plugins-bad \
gstreamer1.0-plugins-ugly \
gstreamer1.0-libav \
gstreamer1.0-tools
QtWayland依赖
# Wayland EGL 后端开发包,主要用于在 Wayland 显示服务器上进行 OpenGL / EGL 渲染 的开发
sudo apt-get install -y \
wayland-protocols \
libwayland-dev \
libwayland-egl-backend-devatspi——X11 Accessibility Bridge
sudo apt-get install -y \
libatspi2.0-devlibproxy——Qt 网络代理支持
sudo apt-get install -y \
libproxy-devSCTP——SCTP 协议支持
sudo apt-get install -y \
libsctp-devSRTP
sudo apt-get install -y \
libsrtp2-devPCI——PCI检测
sudo apt-get install -y \
libpci-devLTTng——性能跟踪工具
sudo apt-get install -y \
lttng-modules-dkms \
liblttng-ust-dev \
lttng-toolsdirectfb——嵌入式平台 GUI,桌面一般不启用
适用于嵌入式。
使用Qt自带副本时,请勿安装。
sudo apt-get install -y \
libfusion-dev \
libdirect-dev \
libdirectfb-devGSSAPI——Kerberos / SASL 支持
# Kerberos 核心开发包,提供头文件和库,用于编译依赖 Kerberos 的程序
# GSSAPI Kerberos 的开发包,提供头文件和静态/动态库,用于编译使用 GSSAPI 的程序
# 提供 Kerberos 配置工具和路径信息,用于编译和链接依赖 Kerberos 的程序
sudo apt-get install -y \
libkrb5-dev \
krb5-config
# Ubuntu 22.05 不存在此包: libgssapi-krb5-dev运行时
# 运行时库,提供 GSSAPI(Generic Security Services API)接口的 Kerberos 实现,用于程序在运行时进行身份验证
# Kerberos 用户工具包,提供命令行工具如 kinit、klist 等,用于获取和管理 Kerberos 票据(tickets)
sudo apt-get install -y \
libgssapi-krb5-2 \
krb5-user打印机
sudo apt-get install -y \
libcups2-dev \
cupshunspell——Qt Virutal Keyboard拼写检查
sudo apt-get install -y \
hunspell \
libhunspell-devSensorFW支持
sudo apt-get install -y \
libsensors4-dev \
libsensors-configHiRes Wheel
sudo apt-get install -y \
libinput10 \
libhidapi-devassimp——Quick3D
使用Qt自带副本时,请勿安装。
sudo apt-get install -y libjasper
sudo apt-get install -y \
libassimp-dev depend on jasperFFMPEG——Qt Multimedia / WebEngine / Video
- Qt6.5.7中多媒体组件必须使用系统提供的版本,并且版本需要在4.x以上;仅QWebEngine可以选择使用自带副本或系统版本。不支持直接安装4.x以上版本时,请从源码编译安装FFMPEG。
- libavresample在Ubuntu 22.04之后已经被移除了,FFMPEG 从4.x开始直接使用libswresample代替libavresample。
sudo apt-get install -y \
ffmpeg \
libavcodec-dev \
libavformat-dev \
libavutil-dev \
libswscale-dev \
libswresample-dev从源码编译安装:
# 安装FFMPEG编译依赖
sudo apt-get install -y \
nasm \
libass-dev \
libfdk-aac-dev \
libvorbis-dev \
libx264-dev \
libx265-dev
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
cd ffmpeg
# 推荐6.x
git checkout n6.1.3
mkdir build && cd build
../configure \
--prefix=/usr/local/ffmpeg6.1.3 \
--pkg-config-flags="--static" \
--extra-cflags="-I/usr/local/ffmpeg6.1.3/include" \
--extra-ldflags="-L/usr/local/ffmpeg6.1.3/lib" \
--extra-libs="-lpthread -lm" \
--bindir=/usr/local/bin \
--enable-gpl \
--enable-nonfree \
--enable-shared \
--disable-static \
--disable-debug \
--disable-doc \
--enable-swresample \
--enable-libx264 \
--enable-libvpx \
--enable-libfdk-aac \
--enable-libopus \
--enable-libass \
--enable-libfreetype \
--enable-libvorbis
make -j$(nproc)
sudo make install
# 配置Qt编译时,显示地指定FFMPEG的路径
# export PKG_CONFIG_PATH=/usr/local/ffmpeg6.1.3/lib/pkgconfig:$PKG_CONFIG_PATH
# export LD_LIBRARY_PATH=/usr/local/ffmpeg6.1.3/lib:$LD_LIBRARY_PATHPositioning
sudo apt-get install -y \
libgps-dev \
gpsd \
gpsd-clients
sudo apt-get install -y \
geoip-bin \
geoip-database \
geoclue-2.0 \
libgeoclue-2-dev
# Ubuntu 22.04 不存在此包: geoip-database-contribgRPC
Qt 6.5.7需要1.50.x\~1.56.x的gRPC。若系统版本可提供满足的版本则直接安装即可。
sudo apt-get install -y \
libgrpc-dev \
libgrpc++-dev否则,从源码编译满足需求的protobuf与gRPC。
cd ~/cache
git clone https://github.com/grpc/grpc.git
cd grpc
git checkout v1.54.3
git submodule update --init --recursive
mkdir build && cd build
# 使用自带的PROTOBUF副本
# 使用系统安装的OpenSSL 3.x,编码Qt用3.x而gRPC使用自带的1.x;导致符号不一致
# 生成动态库,避免Qt链接了OpenSSL而gRPC也链接了OpenSSL导致的重复定义
cmake .. \
-DCMAKE_INSTALL_PREFIX=/opt/qt-deps/grpc-1.54 \
-DgRPC_INSTALL=ON \
-DgRPC_BUILD_TESTS=OFF \
-DgRPC_BUILD_CSHARP_EXT=OFF \
-DgRPC_BUILD_GRPC_NODE_PLUGIN=OFF \
-DgRPC_BUILD_GRPC_PHP_PLUGIN=OFF \
-DgRPC_BUILD_GRPC_RUBY_PLUGIN=OFF \
-DgRPC_PROTOBUF_PROVIDER=module \
-DgRPC_SSL_PROVIDER=package \
-DBUILD_SHARED_LIBS=ON
cmake --build . --parallel
sudo cmake --install .
QtTextToSpeech 依赖
sudo apt-get install -y \
libspeechd-dev \
speech-dispatcher \
espeak-ng \
espeak-ng-dataQWebEngine
Python3
sudo apt-get install -y \
python3 \
python3-dev \
python3-setuptools \
python-is-python3 \
python3-pip \
python3-pexpectHTML5
sudo apt install -y \
python3-html5lib \
python3-lxml \
python3-openssl \
python3-bs4NodeJS
若需更新版本可通过打开链接获取最新的指令:https://deb.nodesource.com/
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo bash -
sudo apt-get install -y nodejs
# 或
cd /opt
sudo wget https://nodejs.org/dist/v18.20.1/node-v18.20.1-linux-x64.tar.xz
sudo tar -xJf node-v18.20.1-linux-x64.tar.xz
sudo mv node-v18.20.1-linux-x64 node18
sudo ln -sf /opt/node18/bin/node /usr/bin/node
sudo ln -sf /opt/node18/bin/npm /usr/bin/npm
node -v # 应该显示 v18.xbrotli
使用Qt自带副本时,请勿安装。
sudo apt-get install -y \
brotli \
libbrotli-devQWebEngine
# 构建工具和解析器
# 词法分析器生成器
# 语法解析器生成器
# 完美哈希函数生成工具
# Google 的构建配置工具(类似 CMake)
sudo apt-get install -y \
flex \
bison \
gperf \
gyp# 安全与系统接口
# NSS (Network Security Services) 开发包,用于加密、证书和 TLS/SSL 支持
# Direct Rendering Manager 开发包,GPU 低级访问
# Generic Buffer Management 开发包,用于 GPU 内存缓冲管理
sudo apt-get install -y \
libnss3-dev \
libdrm-dev \
libgbm-dev# 图像与 GUI
# WebP 图片编解码库
# ATK 无障碍工具包开发库,支持辅助功能
# JSON 解析和操作库
sudo apt-get install -y \
libwebp-dev\
libatk-bridge2.0-dev \
libjsoncpp-dev# 音视频处理
# Opus 音频编解码库
# zip 压缩/解压处理
# VP8/VP9 视频编解码
# 异步事件处理库,常用于网络和多媒体应用
sudo apt-get install -y \
libopus-dev \
libminizip-dev \
libvpx-dev \
libevent-dev# 压缩与搜索
# Snappy 压缩库
# RE2 正则表达式库
sudo apt-get install -y \
libsnappy-dev \
libre2-devsudo apt-get install -y \
libprotobuf-dev \
protobuf-compiler运行时
# WebP 图片编解码库
# ATK 无障碍工具包开发库,支持辅助功能
sudo apt-get install -y \
libnss3 \
libwebp \
libatk1.0-dev其他组件
# X11 会话管理和客户端通信
sudo apt-get install -y \
libsm6 \
libice6 \
libice-dev# 系统服务与权限
# D-Bus 消息总线开发和测试
sudo apt-get install -y \
dbus \
dbus-tests \
libdbus-glib-1-dev# 控制 Linux 进程能力的开发包
# 与 systemd 服务交互的开发包
# 色彩与图像
# 色彩管理库开发包(ICC 配置文件支持)
# MNG 图片格式支持
# TIFF 图像格式支持
# 开发与构建辅助工具
# 文本处理工具
# 补丁文件分析工具
# 文档生成工具
# ELF 文件 RPATH 修改工具
# 网络调试和转发工具
# 文件类型识别
# 系统本地化支持
# 系统工具包
# 压缩
# XZ、CPIO、LZ4 压缩/解压工具
# bzip2 和 B2 压缩库
# ATK 无障碍库的 C++ 接口
# 数据库
# PostgreSQL 客户端开发库
# Markdown 4 C 库的开发包
# 系统构建和文件归档工具
sudo apt-get install -y \
libcap-dev \
libsystemd-dev \
\
liblcms2-dev \
libmng-dev \
libmng2 \
libtiff-dev \
\
gawk \
diffstat \
texinfo \
chrpath \
socat \
file \
locales \
debianutils \
iputils-ping \
\
libbz2-dev \
libb2-dev \
xz-utils \
liblz4-tool \
\
libatkmm-1.6-dev \
\
libpq-dev \
cpio编译安装
cmake 编译主体
# 设置 QT 插件调试,以便配置、编译过程输出详细错误信息
export QT_DEBUG_PLUGINS=1
export CC=/usr/bin/gcc
export CXX=/usr/bin/g++
export PKG_CONFIG_PATH=/usr/local/ffmpeg6.1.3/lib/pkgconfig:/opt/qt-deps/grpc-1.54/lib/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib/pkgconfig:$PKG_CONFIG_PATH
export LD_LIBRARY_PATH=/usr/local/ffmpeg6.1.3/lib:/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
# Release, RelWithDebInfo, Debug
# Qt 6.5.7的组件启用可以进行一次最小配置,然后用“grep -i FEATURE_ CMakeCache.txt”从CMakeCache.txt获取所有组件正确的启用选项名称
# 带有FEATURE_system的部分即可以选择使用系统版本或Qt自带版本的依赖项或组件
cmake .. -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=~/opt/qt/6.5.7 \
-DCMAKE_PREFIX_PATH="/opt/qt-deps/grpc-1.54" \
-DgRPC_DIR=/opt/qt-deps/grpc-1.54/lib/cmake/grpc \
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
-DCMAKE_C_STANDARD=11 \
-DCMAKE_C_STANDARD_REQUIRED=ON \
-DCMAKE_CXX_STANDARD=17 \
-DCMAKE_CXX_STANDARD_REQUIRED=ON \
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=OFF \
-DQT_FEATURE_ccache=ON \
-DQT_UNITY_BUILD=OFF \
\
-DQT_FEATURE_ffmpeg=ON \
-DQT_FEATURE_fontconfig=ON \
-DQT_FEATURE_grpc=ON \
-DQT_FEATURE_libproxy=ON \
-DQT_FEATURE_openssl=ON \
-DQT_FEATURE_openssl_linked=OFF \
-DQT_FEATURE_sctp=ON \
-DQT_FEATURE_xcb_glx=ON \
-DQT_FEATURE_pdf=ON \
-DQT_FEATURE_system_assimp=OFF \
-DQT_FEATURE_system_doubleconversion=OFF \
-DQT_FEATURE_system_freetype=OFF \
-DQT_FEATURE_system_harfbuzz=OFF \
-DQT_FEATURE_system_jpeg=ON \
-DQT_FEATURE_system_libb2=OFF\
-DQT_FEATURE_system_pcre2=OFF \
-DQT_FEATURE_system_png=OFF \
-DQT_FEATURE_system_sqlite=OFF \
-DQT_FEATURE_system_textmarkdownreader=OFF \
-DQT_FEATURE_system_tiff=OFF \
-DQT_FEATURE_system_webp=OFF \
-DQT_FEATURE_system_xcb_xinput=OFF \
-DQT_FEATURE_system_zlib=OFF \
\
-DQT_FEATURE_webengine_build_ninja=ON \
-DQT_FEATURE_webengine_printing_and_pdf=ON \
-DQT_FEATURE_webengine_system_ffmpeg=OFF \
-DQT_FEATURE_webengine_system_freetype=OFF \
-DQT_FEATURE_webengine_system_harfbuzz=OFF \
-DQT_FEATURE_webengine_system_icu=OFF \
-DQT_FEATURE_webengine_system_libjpeg=ON \
-DQT_FEATURE_webengine_system_libpng=OFF \
-DQT_FEATURE_webengine_system_libwebp=OFF \
-DQT_FEATURE_webengine_system_libxml=OFF \
-DQT_FEATURE_webengine_system_libopenjpeg2=OFF \
-DQT_FEATURE_webengine_system_libpci=OFF \
-DQT_FEATURE_webengine_system_libtiff=OFF \
-DQT_FEATURE_webengine_system_libvpx=OFF \
-DQT_FEATURE_webengine_system_minizip=OFF \
-DQT_FEATURE_webengine_system_opus=OFF \
-DQT_FEATURE_webengine_system_poppler=OFF \
-DQT_FEATURE_webengine_system_pulseaudio=OFF \
-DQT_FEATURE_webengine_system_re2=OFF \
-DQT_FEATURE_webengine_system_snappy=OFF \
-DQT_FEATURE_webengine_system_zlib=OFF \
-DQT_FEATURE_webengine_qt_freetype=ON \
-DQT_FEATURE_webengine_qt_harfbuzz=ON \
-DQT_FEATURE_webengine_qt_libjpeg=OFF \
-DQT_FEATURE_webengine_qt_libpng=ON \
-DQT_FEATURE_webengine_qt_zlib=ON \
-DQT_FEATURE_webengine_developer_build=ON \
-DQT_FEATURE_webengine_proprietary_codecs=ON \
\
-DQT_BUILD_EXAMPLES=OFF \
-DBUILD_TESTING=OFF \
\
-Wno-dev
cmake --build . --parallel $(nproc)
cmake --install .编译帮助文档
# 仅编译 docs
ninja docs
# 编译完成后安装 docs
ninja install_docs
评论区(暂无评论)