[记录]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,无法保证低版本桌面环境运行。