[记录]Qt部署桌面linux,移植编译参数讲解。

记录一个linux qt5.15.15的部署案例。支持几乎全qt模块(包括qtwebengine最新版本),支持Ubuntu/CentOS等 14.04直到 24.04等桌面环境。部署案例可以做到不需要升级glibc,一次编译多个linux环境可用。

系统需求:ubuntu16.04 + gcc-5.5  和基础编译环境(gcc-5.5非官方仓库的gcc-5.4版本,5.4版本无法编译新版本webengine)

下载qt-everywhere-opensource-5.15.15保存解压,并执行下面脚本。如果配置通过(没有提示ERROR),保证内存8G或以上,再执行 make install -j 即可

#!/bin/bash
rm -rf *.cache*
rm -rf qtbase/*.cache.*

sudo apt install -y libdbus-1-dev libatspi2.0-dev libxkbcommon*dev libxcb*-dev flex bison gperf \
                libx11*dev libxrender-dev libdrm-dev libxi-dev libxtst-dev \
                x11proto-core-dev libxcursor-dev libxcomposite-dev libxrandr-dev libxkbfile-dev 
                libnss3-dev libgl1-mesa-dev libglu1-mesa-dev libegl1-mesa-dev freeglut3-dev libfontconfig1-dev nodejs libssl-dev 
./configure -prefix \
/opt/dev/qt-5.15.15 \
-xcb \
-openssl \
-opensource \
-confirm-license \
-nomake \
tests \
-nomake \
examples 

注意1:libssl-dev 系统自带的可能不支持qtwebengine ,需要openssl 1.1.1以后的版本 ,请自行编译动态库形式,并安装到环境变量里。

注意2:nodejs默认系统装的版本可能很低,是不能满足qtwebengine需要的,需要高一些的版本,如nodejs18(太高也没法用),可以到nodejs官网找到debian系统官方源,加入到apt源中再来通过apt下载。

注意3:qtwebengine5.15 需要很高版本的libnss3(故Ubuntu12.04不支持),并且需要libsystemd、libgpg***.so、libx11utils***.so、libxcb***.so等等,否则ubuntu14.04等不基于systemd的系统无法启动webengine,需要自行ldd或者在目标系统启动,查找依赖项(这里用linuxdeloyqt查找不到的,因为是webengine底层chromium浏览器内核需要的)。对于喜欢开源和配置仓库apt包做依赖的人来说,这篇针对的文章不适合你。

注意4:编译参数 -xcb 指的是使用系统提供xcb库,来使Qt对接桌面环境,如果用-qt-xcb,无法保证低版本桌面环境运行。