【Qt】linux下源码安装

linux下Qt只提供amd64架构的安装包,其他架构如arm、mips等架构是不能直接安装的,需要自行编译Qt源码进行安装才能使用

下面记录linux-x11系统下编译Qt源码的流程,linux-x11,主要区别于嵌入式linux(Embedded Linux)

官方文档介绍:https://doc.qt.io/qt-5.12/linux.html

Linux-x11

图形界面并不是linux的一部分,linux只是一个基于命令行的操作系统。X 是协议,就像HTTP协议,IP协议一样,一个基于X的应用程序需要运行并显示内容时他就连接到X服务器,开始用X协议和服务器交谈,告知服务器要显示什么,服务器就通过cpugpu等控制输入输出。所以我们使用桌面linux系统基本都是基于这个模式实现的,比如ubuntu、麒麟系统kylin、统信uos

所有操作以debian/ubuntu系统为例,国产操作系统麒麟、uos都是属于该类

环境准备

1.安装编译环境

sudo apt-get install build-essential

2.qt应用依赖OpenGL,安装OpenGL

sudo apt-get install -y libgl1-mesa-dev

3.X11依赖

Qt5以后qt界面的跨平台通过QPA (Qt Platform Abstraction) 抽象层实现,当增加某个平台的实现就增加一个插件,linux-x11使用的是xcb QPA插件,所以还需要依赖一些库

官方文档说明:https://doc.qt.io/qt-5.12/linux-requirements.html

官方列举了DebianLinux系统需要的依赖库

  • libfontconfig1-dev
  • libfreetype6-dev
  • libx11-dev
  • libxext-dev
  • libxfixes-dev
  • libxi-dev
  • libxrender-dev
  • libxcb1-dev
  • libx11-xcb-dev
  • libxcb-glx0-dev
  • libxkbcommon-x11-dev

xcb相关

  • 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

只要你使用的linux版本不是特别低,安装的系统源提供的版本就可以了。

最笨的方法就是一个一个去安装,xcb可以使用apt install –y libxcb*,安装所有libxcb相关的库,暴力解决

有需要的可以写成shell脚本,方便使用

配置安装

相关安装步骤就不贴图了,这里记录整个流程,适合有一定经验的人操作,小白最好还是找图文结合的文章进行操作

官方源码安装文档介绍:https://doc.qt.io/qt-5.12/linux-building.html

官方介绍采用的默认配置安装,和以下的流程大体一样,就是配置细节方面不同

首先下载qt源码,下载地址:https://download.qt.io/archive/qt/

1.解压

Qt linux源码包为xz格式

先执行xz –d转成tar格式的压缩包

再使用tar xvf解压

2.configure

查看configure支持的配置项

./configure –h

指定安装路径,如果不指定路径,默认安装在/usr/local/Qt-%VERSION%

./configure -prefix /opt/Qt5.12.8

检查是否满足xcb的依赖

./configure –qt-xcb

这一步很重要 如果不满足 说明相关依赖库没有装好 最好再检查一遍 如果xcb不满足 编译生成的Qt库无法生成libqxcb.so,虽然能正常编译,但运行时会报错

qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, webgl, xcb.

完整的命令

./configure –qt-xcb –prefix /opt/Qt5.12.8

3.编译

sudo make –j 4

参数-j为多线程编译 线程数为4,采用多线程会快很多,不然要编译很久,貌似不指定线程数会采用支持的最高的线程数

4.安装

编译完成安装

sudo make install

可以编译和安装命令连起来

sudo make –j 4 && make install

5.配置环境变量

sudo vi /etc/profile

添加内容

export QTDIR=/opt/Qt5.12.8
export PATH=$QTDIR/bin:$PATH
export MANPATH=$QTDIR/man:$MANPATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

使配置生效

source /etc/profile

查看是否配置成功

qmake -v

6.编译运行

新建qt工程,在工程目录下执行

#qmake
qmake –r

#编译
make

#清除
make clean

#运行
./编译生成的程序名

结语

大体安装步骤就是这样了,我自己在麒麟系统、UOS系统不同架构使用上述步骤安装都能够正常使用,其他细节配置可以查看Qt文档,还是比较详细的

由于在其他架构只是编译打包程序,所以没装Qt Creator,代码在amd64是编译通过的,在其他架构使用命令行编译就行,搭建好qt环境后也可以拿Qt Creator源码来编译,只不过我这里用不到

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值