centOs 6.10 编译 qt 5.15.11

安装依赖库

xcb 依赖库

qt xcb 需要的依赖

如何要用 x11, 就要在编译的时候加上 -xcb 选项,就要安装 xcb 相关的库。

到时可以在 config.log 文件查看,缺少哪个库就安装哪个。

下面是我手动安装的库和对应版本:

xml 复制代码
xcb-proto-1.14.tar.gz
xcb-util-image-0.4.1.tar.gz
xcb-util-keysyms-0.4.1.tar.gz
xcb-util-renderutil-0.3.10.tar.gz
xcb-util-wm-0.4.2.tar.gz

注意:

  • 要先安装 xcb-proto 再安装其它的库。
  • 如果安装了库还是找不到,就配置 pkg-config 的搜索路径(一般是安装时自动配置好的)

xcb相关库下载地址

安装 xkbcommon 依赖库

x11 也会用到 xkbcommon 库,这个库在 centos 6.10 的包管理工具中没有,也需要源码编译安装

下载地址

我下载的是 1.5.0 版本。

解压
shell 复制代码
tar -xvf libxkbcommon-1.5.0.tar.xz
编译安装
shell 复制代码
cd libxkbcommon-1.5.0
meson setup build
meson compile -C build
# 安装完成后要配置 pkg-config 的搜索路径 .pc 文件

这里用的到 meson 工具也需要重新安装,版本要大于 0.55,centos 6.10 自带的版本太低了。

安装 meson
shell 复制代码
python -m pip install meson
python -m pip install ninja

这里的 python 也要重新安装,并且要配置好 openssl 才可以使用 pip。

可以参考我的另一篇教程:centos 6.10 安装 python3.10.5 和 openssl1.1.1

下载安装 qt 5.15.11

下载路径

下载后解压

依次执行下面命令

shell 复制代码
cd qt-everywhere-src-5.15.11
mkdir build && cd build
../configure -opensource -xcb -xcb-xlib -xkbcommon -qt-sqlite -sql-sqlite -prefix /home/keith/soft/qt5.15.11
gmake
gamke install

安装过程中的其它问题

整个安装过程是一个探索的过程,持续了快一个星期左右,前期的有些问题已经不记得是怎么解决的了。只记得遇到过这些问题

yum 无法使用

centos 6 在 2020 年 12 月以后,官方已经不在进行维护了, yum 无法直接再下载安装软件。

可以参考网上的教程,重新配置一下

注意: 或许不用配置,因为 yum 能直接安装的包都太老了,无法直接使用。

当时还遇到一个问题,是因为执行了:
yum install centos-release-scl, 导致后面一直报错,要把这个包删了才行:yum remove centos-release-scl

binutils 版本太老

忘了这个的报错是怎么样的了,但是可以参考这个文章解决
参考路径

sqlite

如果要用 sqlite

用 -qt-sqlite 选项, 用 qt 自带的 sqlite 而不是系统的

参考链接

Building Qt 5 from Git
How to Install Qt 5 and Qwt on CentOS 6
centos 6.10 安装 gcc 9.4
centos 6.10 安装 perl 5.14

相关推荐
阿里云大数据AI技术1 小时前
阿里云 EMR AI 助手正式发布:从问答工具到全栈智能运维助手
运维·人工智能
orion5718 小时前
Missing Semester Class1:course overview and introduction of shell
linux
SkyWalking中文站1 天前
认识 Horizon UI · 6/17:Trace 探索器
运维·监控·自动化运维
用户120487221611 天前
Linux驱动编译与加载
linux·嵌入式
火车叼位1 天前
写给初级开发者:SSL、SSH、HTTPS 与证书体系全解析
运维
用户805533698031 天前
Input 子系统架构:Core、Handler、Driver 三层是怎么协作的
linux·嵌入式
用户805533698031 天前
RK-Forge外设系列开篇 - 把板子从「能启动」变成「能用」:Ethernet/SPI/MMC 三个纯接线外设
linux·github·嵌入式
小猿姐2 天前
唯品会大规模数据库云原生实践:基于 KubeBlocks 管理数千实例的统一运维之路
运维·elasticsearch·云原生
七歌杜金房2 天前
我终于又有了自己的 Linux 电脑
linux·debian·mac
SkyWalking中文站2 天前
认识 Horizon UI · 5/17:3D 基础设施地图
运维·监控·自动化运维