ubuntu-18.04上通过源码来编译及安装Qt-5.12库

前言:本文将介绍Qt5源码方式的编译及安装

注:实验版本是Qt-5.12。

下载源码包:qt-everywhere-src-5.12.8.tar.xz

下载地址:Index of /

依次选择:

【official_releases】 =>【qt】 =>【5.12】 =>【5.12.8】 =>【single】 =>【qt-everywhere-src-5.12.8.tar.xz】

下载完成请按以下步骤进行:

1. 安装依赖库

安装命令:

$ sudo apt-get install libx11-dev libxext-dev libxtst-dev

$ sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev

$ sudo apt-get install libxkbcommon-x11-dev

2. 解压

将压缩包放到Ubuntu某目录,并进入解压:

$ xz -d qt-everywhere-src-5.12.8.tar.xz

初步解压出:qt-everywhere-src-5.12.8.tar

$ tar xf qt-everywhere-src-5.12.8.tar

最终得到:qt-everywhere-src-5.12.8

进入目录:

$ cd qt-everywhere-src-5.12.8

3. 阅读说明README

养成良好习惯,对于一个陌生的开源库或其他工具,首先要看说明README。

官方指导,最为权威。打开README,里面会教你” HOW TO BUILD QT5”,请先仔细阅读。

还有官方线上文档for linux:https://doc.qt.io/qt-5/linux.html

4. 配置编译选项

$ ./configure --help          //配置选项说明

参考READ及help,配置如下:

$ ./configure -opensource -release -confirm-license -qt-xcb -nomake tests -nomake examples

也可用-prefix指定库的安装路径,若不指定则默认/usr/local下

配置完成输出:

Qt is now configured for building. Just run 'make'.

Once everything is built, you must run 'make install'.

Qt will be installed into '/usr/local/Qt-5.12.8'.

以上信息告诉你:执行make和make install进行编译及安装在'/usr/local/Qt-5.12.8'

备注:

此步可能出现以下错误:

错误:ERROR:Feature 'xcb' was enabled, but the pre-condition ' features.thread && features.xkbcommon &.& libs.xcb'failed

解决方法: $ sudo apt-get install libxkbcommon-x11-dev

5. 编译

$ make              //或多线程加速编译:$ make -j4

过程漫长。。。

Ubuntu20出现错误:

Info: creating cache file /data/libs-3rd/qt-everywhere-src-5.12.8/qtdeclarative/.qmake.cache

sh: 1: python: not found

Project ERROR: Building QtQml requires Python.

make: *** [Makefile:337: module-qtdeclarative-make_first] Error 3

原因:

python 可能被 python2 或者 python 3 代替了导致映射不到。

通过以下命令查看确实没有python

$ ls /usr/bin/python*

解决:

没有则创建,执行以下命令创建软链接:

$ ln -s /usr/bin/python3 /usr/bin/python

再次查看就有了:

6. 安装

$ sudo make install

安装完成,可见:

$ ls /usr/local/Qt-5.12.8/

输出目录:

bin  doc  include  lib  mkspecs  phrasebooks  plugins  qml  translations

7. 配置环境变量

一般情况,新安装的库都需为其配置环境,以便编译器能顺利找到它。

编译/etc/profile配置文件

$ sudo vi /etc/profile

在文末加入以下内容:(配置QT库的路径到环境变量中)

# Qt5

export QTDIR=/usr/local/Qt-5.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

可见有版本信息输出:

QMake version 3.1

Using Qt version 5.12.8 in /usr/local/Qt-5.12.8/lib

配置成功!

8. 创建第一个hello工程

在某目录下编译cpp源文件:

$ vi hello.cpp

输入以下代码:

9. 如何编译第一个工程

依次执行以下命令:

$ qmake -project              //创建qt.pro文件

$ qmake           //生成Makefile

$ make                      //编译,生成可执行文件

没找到文件!

原因:由于Qt5将大部分桌面部件移到了Qt Widgets模块中,即QApplication已经从原来的<QtGui/QApplication>移动到<QtWidgets/QApplication>了。

解决:修改.pro文件:在xxx.pro文件最后加上一行:

greaterThan(QT_MAJOR_VERSION,4): QT += widgets

即:QT版本>4的,QLabel等部件都放在widgets模块下了

修改后再make即可编过

运行:

$ ./hello

可见,弹出了个小框,成功显示“Hello Qt”

到此,QT库安装完成。


版权声明:本文为myQQ_914404940原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。