Qt源码编译

介绍:
QT5.15以上版本已经不提供现成的集成软件了。所以当我们项目中需要用到5.15以上的版本时,只能自己对源码进行编译来生成一个环境了(Qt提供了在线升级,但是在线升级中没有MinGW版本了)

背景:
我们想要编译源码,首先肯定需要下载源码。(下载地址
在这里插入图片描述
由于编码原因,zip格式的只能用在Windows环境,tar.xz用于linux环境。
下载完源码之后,进行解压(这里介绍linux环境):
在这里插入图片描述
解压完成后,我们编译源码会用到configure文件,到了这一步就很关键了,我们对configure的配置直接影响构建和编译是否成功。
这里有一篇文章讲了configure后面带的配置的具体含义,有兴趣的可以仔细研究下。

方法:
重要:有些模块编译能否成功需要关联库,如果我们不需要这些模块,我们可以跳过这些模块,但是构建失败提示的模块内容往往不是我们需要跳过的名称。
例如输入-skip 3dcore来跳过对应模块时,你会发现提示qt3dcore不存在。
在这里插入图片描述
在这里插入图片描述
为什么这样呢,因为根本就没有叫做3dcore、3drender模块名,这个时候我们需要找到对应的模块名,需要从目录里面找,如下:
在这里插入图片描述
在这里插入图片描述
从一层层目录中我们找到了对应的模块,这个时候我们想要跳过这个模块,就可以带qt3d这个名称达到跳过的效果(-skip qt3d)。
我这里提供一个脚本,一般情况下可以直接用(目前编过5.15.2和5.15.15)。

#! /bin/bash


#如果没有GCC、G++ 请安装
#sudo apt install build-essential gdb    #安装编译器和调试器
#sudo apt-get install g++
#sudo apt-get install gcc

#静态编译前安装一下包,如果需要编译xcb则不能跳过它
#sudo apt-get install libx11-*
#sudo apt-get install libx11*

#sudo apt-get install libxcb-*
#sudo apt-get install libxcb*

#sudo apt-get install libxkbcommon-devsudo
#sudo apt-get install libxkbcommon-x11-dev
#sudo apt-get install libxcb-xinerama0-dev
#sudo apt-get install libxcb-sync-dev


#configue配置
QT_INSTALL_PATH="-prefix /home/forlinx/Qt5.15.2"     #Qt安装路径(自己修改)
QT_COMPLIER+="-platform linux-g++-64"  #编译器

#CONFIG_PARAM+="-static "               #静态编译
CONFIG_PARAM+="-release "             #编译release
CONFIG_PARAM+="-recheck-all "
CONFIG_PARAM+="-nomake examples "    #不编译examples
CONFIG_PARAM+="-nomake tests "        #不编译tests
CONFIG_PARAM+="-nomake tools "

CONFIG_PARAM+="-xcb "
CONFIG_PARAM+="-qt-zlib "
CONFIG_PARAM+="-qt-libpng "
CONFIG_PARAM+="-qt-libjpeg "
CONFIG_PARAM+="-qt-freetype "
CONFIG_PARAM+="-qt-sqlite "

CONFIG_PARAM+="-no-rpath "
CONFIG_PARAM+="-no-gif "
CONFIG_PARAM+="-no-pch "
CONFIG_PARAM+="-no-avx "
CONFIG_PARAM+="-no-openssl "
CONFIG_PARAM+="-no-cups "
CONFIG_PARAM+="-no-dbus "
CONFIG_PARAM+="-no-pkg-config "
CONFIG_PARAM+="-no-opengl "
CONFIG_PARAM+="-no-glib "
CONFIG_PARAM+="-no-iconv "

CONFIG_PARAM+="-make libs "
CONFIG_PARAM+="-strip "

CONFIG_PARAM+="-skip qtx11extras "     
CONFIG_PARAM+="-skip qtsensors "
CONFIG_PARAM+="-skip qtserialbus "
CONFIG_PARAM+="-skip qtwebsockets "
CONFIG_PARAM+="-skip qtwebchannel "
CONFIG_PARAM+="-skip qtquickcontrols "
CONFIG_PARAM+="-skip qtpurchasing "
CONFIG_PARAM+="-skip qtconnectivity "
CONFIG_PARAM+="-skip qtscxml "
CONFIG_PARAM+="-skip qtxmlpatterns "
CONFIG_PARAM+="-skip qtnetworkauth "
CONFIG_PARAM+="-skip qtspeech "
CONFIG_PARAM+="-skip qtscript "
CONFIG_PARAM+="-skip qtcharts "
CONFIG_PARAM+="-skip qtgamepad "
CONFIG_PARAM+="-skip qtandroidextras "
CONFIG_PARAM+="-skip qtmacextras "
CONFIG_PARAM+="-skip qtremoteobjects "
CONFIG_PARAM+="-skip qtdatavis3d "
CONFIG_PARAM+="-skip qtwebengine "
CONFIG_PARAM+="-skip qtlocation "
CONFIG_PARAM+="-skip qt3d "


#选择Qt版本(开源, 商业), 并自动确认许可认证
CONFIG_PARAM+="-opensource "         #编译开源版本, -commercial商业版本
CONFIG_PARAM+="-confirm-license "      #自动确认许可认证

echo "./configure $CONFIG_PARAM $QT_COMPLIER $QT_INSTALL_PATH"
./configure $CONFIG_PARAM $QT_COMPLIER $QT_INSTALL_PATH

5.15.2linux x86源码
5.15.15linux x86源码
执行脚本后,结果如下:
在这里插入图片描述

然后sudo make -j8和sudi make instal
环境配置:
源码编译好后,你会发现创建一个项目并不能直接用,我们需要配置对应的环境。
Qt Version配置:
在这里插入图片描述
Compilers不用配置,因为我们编译源码前GCC就已经安装了,在Compilers会自动识别出来。
在这里插入图片描述
把库文件配置成系统库,
进入到/etc/ld.so.conf.d目录,创建自己的.conf文件。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
按照以上截图配置自己的源码环境。

测试:
打开qtcreator创建一个项目测试。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东方忘忧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值