Qt5.15.x源码编译

介绍:
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

#静态编译前安装一下包
#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 "     #如果编译了xcb则需不能跳过它
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源码
环境配置:
源码编译好后,你会发现创建一个项目并不能直接用,我们需要配置对应的环境。
Qt Version配置:
在这里插入图片描述
Compilers不用配置,因为我们编译源码前GCC就已经安装了,在Compilers会自动识别出来。
在这里插入图片描述
把库文件配置成系统库,
进入到/etc/ld.so.conf.d目录,创建自己的.conf文件。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
按照以上截图配置自己的源码环境。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/906662.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Ubuntu 系统、Docker配置、Docker的常用软件配置(下)

前言 书接上文,现在操作系统已经有了,作为程序的载体Docker也安装配置好了,接下来我们需要让Docker发挥它的法力了。 Docker常用软件的安装 1.Redis 缓存安装 1.1 下载 docker pull redis:7.4.1 #可改为自己需要的版本 1.2 创建本地目录存储…

Redis全系列学习基础篇之位图(bitmap)常用命令的解析

文章目录 描述常用命令及解析常用命令解析 应用场景统计不确定时间周期内用户登录情况思路分析实现 统计某一特定时间内活跃用户(登录一次即算活跃)的数量思路分析与实现 描述 bitmap是redis封装的用于针对位(bit)的操作,其特点是计算效率高,占用空间少,常被用来统计…

面试题:JVM(四)

new对象流程?(龙湖地产) 对象创建方法,对象的内存分配。(360安全) 1. 对象实例化 创建对象的方式有几种? 创建对象的步骤 指针碰撞:以指针为分界线,一边是已连续使用的…

手写实现call,apply,和bind方法

手写实现call,apply和bind方法 call,apply和bind方法均是改变this指向的硬绑定方法,要想手写实现此三方法,都要用到一个知识点,即对象调用函数时,this会指向这个对象(谁调用this就指向谁&#…

【python ASR】win11-从0到1使用funasr实现本地离线音频转文本

文章目录 前言一、前提条件安装环境Python 安装安装依赖,使用工业预训练模型最后安装 - torch1. 安装前查看显卡支持的最高CUDA的版本,以便下载torch 对应的版本的安装包。torch 中的CUDA版本要低于显卡最高的CUDA版本。2. 前往网站下载[Pytorch](https://pytorch.o…

AI驱动无人驾驶:安全与效率能否兼得?

内容概要 如今,人工智能正以其神奇的魔力驱动着无人驾驶的浪潮,带来了无数令人兴奋的可能性。这一领域的最新动态显示,AI技术在车辆的决策过程和实时数据分析中发挥着重要作用,帮助车辆更聪明地应对复杂的交通环境。通过实时监测…

从头开始学PHP之面向对象

首先介绍下最近情况,因为最近入职了且通勤距离较远,导致精力不够了,而且我发现,人一旦上了班,下班之后就不想再进行任何脑力劳动了(对大部分牛马来说,精英除外)。 话不多说进入今天的…

Systemd:现代 Linux 系统服务管理的核心

Systemd:现代 Linux 系统服务管理的核心 引言 Systemd 是一种现代的系统和服务管理器,用于在 Linux 系统启动时初始化用户空间,并通过服务管理和资源控制实现系统的自动化管理。自发布以来,Systemd 已逐渐取代传统的 SysVinit 和…

Linux初阶——线程(Part3):POSIX 信号量 CP 模型变体

一、什么是 POSIX 信号量 信号量本质就是一个统计资源数量的计数器。​​​​​​​ 1、PV 操作 pv操作就是一种让信号量变化的操作。其中 P 操作可以让信号量减 1(如果信号量大于 0),V 操作可以让信号量加 1. 2、信号量类型——sem_t 3…

《女巫攻击:潜伏在网络背后的隐秘威胁与防御策略》

目录 引言 一、基本概念 二、攻击机制 三、Sybil攻击类型 1、直接通信 2、间接通信 3、伪造身份 4、盗用身份 5、同时攻击 6、非同时攻击 四、攻击影响 五、防御措施 总结 引言 随着区块链技术和去中心化网络的迅速发展,网络安全问题也愈发引起关注。其…

Mybatis-plus入门教程

注意版本 jdk 18 springboot 3.1.0 mybatis 3.0.3 mybatisplus 3.5.5 快速入门 构建模块 导入依赖 <properties><maven.compiler.source>18</maven.compiler.source><maven.compiler.target>18</maven.compiler.target><project.build…

插件式模块化软件框架的思想图解一(框架篇)

插件式模块化软件框架的思想图解一&#xff08;框架篇&#xff09; Chapter1 插件式模块化软件框架的思想图解一&#xff08;框架篇&#xff09;一、前述二、模块化原则1、高度独立2、接口规范 三、从管理需求出发四、框架雏形五、接口引用规定六、子模块与代码模板七、把优秀当…

用ChatGPT-o1搞定论文写作!完整的8步指南

学境思源&#xff0c;一键生成论文初稿&#xff1a; AcademicIdeas - 学境思源AI论文写作 使用ChatGPT辅助论文写作可以显著提升效率和质量&#xff0c;关键在于正确的方法和对学术规范的遵守。以下将详细说明完整步骤&#xff0c;并提供ChatGPT的具体操作指南。 1. 确定研究…

LabVIEW继电器视觉检测系统

随着制造业的自动化与高精度要求不断提升&#xff0c;传统的人工检测方法逐渐难以满足高效和高精度的需求。特别是在航空航天、医疗设备等高端领域&#xff0c;密封继电器推动杆部件的质量直接影响到设备的性能与可靠性。LabVIEW自动化视觉检测系统&#xff0c;能对推动杆部件进…

SYN590RH

一般描述 SYN590RH是SYNOXO全新开发设计的一款宽电压范围&#xff0c;低功耗&#xff0c;高性能&#xff0c;无需外置AGC电容&#xff0c;灵敏度达到典型-110 dBm,400MHz~450MHz频率范围应用的单芯片ASK或00 K射频接收器。 SYN590RH是一款典型的即插即用型单片高…

网络编程_day6

目录 【0】复习 并发服务器实现思路梳理 多进程 多线程 IO多路复用select 【1】setsockopt&#xff1a;设置套接字属性 socket属性 设置地址重用 【2】超时检测 必要性 超时检测的设置方法 1. 通过函数自带的参数设置 2. 通过设置套接字属性进行设置 3. alarm函数与sigaction函…

Python Matplotlib:基本图表绘制指南

Python Matplotlib&#xff1a;基本图表绘制指南 Matplotlib 是 Python 中一个非常流行的绘图库&#xff0c;它以简单易用和功能丰富而闻名&#xff0c;适合各种场景的数据可视化需求。在数据分析和数据科学领域&#xff0c;Matplotlib 是我们展示数据的有力工具。本文将详细讲…

在VS中安装chatGPT

2、在VSCode中打开插件窗口 3、输入ChatGPT 4、这里有个ChatGPT中文版&#xff0c;就它了 5、安装 6、这时候侧边栏多了一个chatGPT分页图标&#xff0c;点击它 7、打个招呼 8、好像不行 9、看一下细节描述 10、根据要求按下按下快捷键 Ctrl Shift P 11、切换成国内模式 12、…

使用 ADB 在某个特定时间点点击 Android 设备上的某个按钮

前提条件 安装 ADB&#xff1a;确保你已经在计算机上安装了 Android SDK&#xff08;或单独的 ADB&#xff09;。并将其添加到系统环境变量中&#xff0c;以便你可以在命令行中运行 adb。 USB调试&#xff1a;确保 Android 设备已启用 USB 调试模式。这可以在设备的“设置” -…

一文了解Linux内核I2C子系统,驱动苹果MFI加密芯片

版本 日期 作者 变更表述 1.0 2024/10/27 于忠军 文档创建 背景&#xff1a;由于苹果有一套MFI IAP2的蓝牙私有协议&#xff0c;这个协议是基于BR/EDR的RFCOMM自定义UUID来实现IAP2协议的通信&#xff0c;中间会牵扯到苹果加密芯片的I2C读取&#xff0c;所以我们借此机…