【QT】Ubuntu 编译安装 QT 5.12.7 源码

直接通过源码来编译安装 QT,难度太大,耗时较长,一般不是特别推荐使用源码安装。


目录

1、下载 QT 源码包

2、搭建安装环境(下载依赖库)

3、编译QT源码的脚本


1、下载 QT 源码包

QT5.12.7源码下载地址:  download | QT 5.12.7

选择任意一种下载即可,适用于 Windows 和 Linux 环境

这里选择的是.tar.xz 类型,上传到 Linux 环境,新建一个 qt 目录,然后将压缩包保存到 qt 目录下,并解压。

tar xf qt-everywhere-src-5.12.7.tar.xz -C ./

2、搭建安装环境(下载依赖库)

sudo apt-get update
sudo apt-get install libxcb-xinerama0-dev
# sudo apt-get install python 会安装失败
sudo apt-get install build-essential perl git python3
# 为了支持 -qt-xcb 选项所需的库
sudo apt-get install '^libxcb.*-dev' libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev

可能在make install 的时候会出现找不到 python 的问题,因为直接下载 python 失败,所以这里下载的是 python3,需要在 /bin 目录下创建一个软链接名为 python

cd /bin
sudo ln -s python3 python

3、编译QT源码的脚本

由于编译 QT 库的选项较多,这里推荐使用脚本编译,在之前的 qt 目录下创建一个脚本文件 auto-config.sh,基本步骤如下: 

touch auto-config.sh        # 创建脚本文件
chmod a+x auto-config.sh    # 赋予脚本可执行权限

auto-config.sh 脚本文件的内容如下。需要修改下面的 QT_INSTALL_PATH 变量中的QT安装路径

#!/bin/bash# QT 安装路径
QT_INSTALL_PATH="-prefix /home/gzx/tool/qt/qt-5.12.7-build/"# 选择编译器
QT_COMPILER="-platform linux-g++-64"    # 使用g++编译# 清除之前的编译缓存
QT_CLEAR_CACHE="-recheck-all"# 编译选项
CONFIG_PARAM+="-opensource "            # 编译开源版本,-commercical 表示商业版本
CONFIG_PARAM+="-confirm-license "       # 自动确认许可认证CONFIG_PARAM+="-debug "                 # 编译模式: debugCONFIG_PARAM+="-static "                # 静态编译,-shared 表示动态编译
CONFIG_PARAM+="-nomake examples "       # 不编译examples(示例)
CONFIG_PARAM+="-nomake tests "          # 不编译tests(测试单元)
CONFIG_PARAM+="-qt-xcb -xkbcommon "     # 其他编译选项# 需要忽略的内容(-skip后面跟qt-everywhere-src-5.12.7下对应的目录名)
CONFIG_SKIP+="-skip qtquickcontrols "
CONFIG_SKIP+="-skip qtquickcontrols2 "
CONFIG_SKIP+="-skip qtsensors "
CONFIG_SKIP+="-skip qtdoc "
CONFIG_SKIP+="-no-openssl "    
CONFIG_SKIP+="-no-opengl "./qt-everywhere-src-5.12.7/configure $QT_INSTALL_PATH \$QT_COMPILER \$QT_CLEAR_CACHE \$CONFIG_PARAM \$CONFIG_SKIP

配置完毕后,接下来开始编译安装

make -j4 & make install

上面设置的安装目录是 qt 目录下的 qt-5.12.7-build 目录,我们进入到 qt-5.12.7-build 目录就可以看到如下所示内容:

参考文章: 

Ubuntu下编译Qt5.14源码_ubuntu编译qt源码_xiaobai_cpp的博客-CSDN博客

ubuntu 下编译QT5 | 码农家园

Xubuntu20.04 静态编译 Qt 5.14.2 源码_爱养生的程序猿的博客-CSDN博客

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

spring boot+ vue+ mysql开发的一套厘米级高精度定位系统源码

UWB室内高精度定位系统源码,自主版权演示 UWB技术最核心的能力就是精准的定位与测距,当然它还具备通信功能。不过,目前主流通信技术已经相当成熟,无需UWB兼顾去做通信传输。而且,如果使用UWB通信功能,反而会…

多媒体播放软件 Infuse mac中文特点介绍

Infuse mac是一款多媒体播放器应用,它支持播放多种格式的视频文件、音频文件和图片文件,并且可以通过AIrPlay将媒体内容投放到其他设备上。Infuse还支持在线视频流媒体播放和本地网络共享,用户可以通过它来访问家庭网络上的媒体文件。 Infuse…

什么是React的虚拟DOM(Virtual DOM)?它的作用是什么?

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

奖励最顶尖的 K 名学生 (2512.leetcode,Java中sort的巧妙lambda使用)-------------------Java实现

奖励最顶尖的 K 名学生 (2512.leetcode,Java中sort的巧妙lambda使用)-------------------Java实现 题目表述 给你两个字符串数组 positive_feedback 和 negative_feedback ,分别包含表示正面的和负面的词汇。不会 有单词同时是正…

【Doris实战】Apache-doris-2.0.2部署帮助手册

Apache-doris-2.0.2部署帮助手册 校验时间:2023年10月11日 文章目录 Apache-doris-2.0.2部署帮助手册安装前准备安装包安装要求Linux 操作系统版本需求软件需求句柄需求关闭 Swap网络需求 部署规划用户规划目录规划免密需求 安装步骤配置JDK配置Doris文件 启动与停止…

Linux是什么,其特点是啥

与大家熟知的 Windows 操作系统软件一样,Linux 也是一个操作系统软件,其 logo 是一只企鹅。与 Windows 不同之处在于,Linux 是一套开放源代码程序的、可以自由传播的类 Unix 操作系统软件。Linux,全称GNU/Linux,是一种…

JAXB 使用记录 bean转xml xml转bean 数组 继承

JAXB 使用记录 部分内容引自 https://blog.csdn.net/gengzhy/article/details/127564536 基础介绍 JAXBContext类:是应用的入口,用于管理XML/Java绑定信息 Marshaller接口:将Java对象序列化为XML数据 Unmarshaller接口:将XML数…

Spark入门

Spark 1.Spark概述 2.Spark特点 3.RDD概述 1. Spark概述 什么是Spark 回顾:Hadoop主要解决,海量数据的存储和海量数据的分析计算。 Spark是一种基于内存的快速、通用、可扩展的大数据分析计算引擎。 Hadoop与Spark历史 Hadoop与Spark框架对比 Dr…

js中async的作用

async是JavaScript中的关键字,用于表示函数是异步的。 当函数被标记为async时,该函数会自动返回一个Promise对象,这个Promise对象的状态可能为resolved或rejected,具体取决于函数内部的操作和返回值。 使用async关键字时&#x…

【gmail注册教程】手把手教你注册Google邮箱账号

手把手教你注册Google邮箱账号 写在前面: 要注意,注册Google邮箱必须要确保自己能够 科学上网,如果暂时做不到,请先进行相关学习。使用的手机号是大陆(86)的。 在保证自己能够科学上网后,在浏…

【三维张量的展开和折叠 python】

三维张量的展开和折叠 python 测试张量,模态展开和折叠函数测试结果 测试张量,模态展开和折叠函数 tensor np.array([[[0, 3, 6, 9],[1, 4, 7, 10],[2, 5, 8, 11]],[[12, 15, 18, 21],[13, 16, 19, 22],[14, 17, 20, 23]]])def mode_k_folding(mat, k,…

Docker--harbor

一,registry registry是私有仓库的核心,只有字符终端。 二,registry部署 #首先下载 registry 镜像 docker pull registry#在 daemon.json 文件中添加私有镜像仓库地址 vim /etc/docker/daemon.json {"insecure-registries": [&q…

如何在 Spring Boot 中使用 WebSocket

在Spring Boot中使用WebSocket构建实时应用 WebSocket是一种用于实现双向通信的网络协议,它非常适合构建实时应用程序,如在线聊天、实时通知和多人协作工具。Spring Boot提供了对WebSocket的支持,使得在应用程序中集成WebSocket变得非常容易…

3D包容盒子

原理简述 包围体(包容盒)是一个简单的几何空间,里面包含着复杂形状的物体。为物体添加包围体的目的是快速的进行碰撞检测或者进行精确的碰撞检测之前进行过滤(即当包围体碰撞,才进行精确碰撞检测和处理)。包…

Rule-Engine-Starter V1.0.0

一个轻量级的规则引擎、搜索引擎,让条件匹配简单、优雅。 GIT地址 https://gitcode.cosmoplat.com/15011240224/rule-engine-starter 介绍 Rule-Engine-Starter 是一个轻量级规则引擎,V1.0.0主要解决条件匹配问题。比如飞书文档,每个文档都…

【网络安全 ---- 靶场搭建】凡诺企业网站管理系统靶场详细搭建过程(asp网站,练习Access数据库的 sql注入)

一,资源下载 百度网盘资源下载链接:百度网盘 请输入提取码百度网盘为您提供文件的网络备份、同步和分享服务。空间大、速度快、安全稳固,支持教育网加速,支持手机端。注册使用百度网盘即可享受免费存储空间https://pan.baidu.com…

【Mysql实现递归树查询】

Mysql8实现递归查询 递归执行分析demo数据查询demo数据扩展字段扩展 大家好! 在我们日常工作中,经常会遇到一些问题,它们的一些解决方案通常会用到递归这一强大的技术手段。递归不仅能帮助我们更高效的解决问题,还可以使代码更简介、更易于理解, 今天我来给大家分享…

竹云筑基,量子加密| 竹云携手国盾量子构建量子身份安全防护体系

9月23日-24日,2023量子产业大会在安徽合肥举行。作为量子科技领域行业盛会,2023年量子产业大会以“协同创新 量点未来”为主题,展示了前沿的量子信息技术、产业创新成果,并举办主旨论坛、量子科普讲座等系列专项活动。量子信息作为…

云服务器带宽对上传下载速度的影响

简单来说就是 云服务器收到数据代表入&#xff0c;带宽大小 < 10时&#xff0c;入带宽大小10 带宽大小 > 10时&#xff0c;出入带宽上限 等于实际购买时候的大小

C++算法:最少翻转操作数

题目 给你一个整数 n 和一个在范围 [0, n - 1] 以内的整数 p &#xff0c;它们表示一个长度为 n 且下标从 0 开始的数组 arr &#xff0c;数组中除了下标为 p 处是 1 以外&#xff0c;其他所有数都是 0 。 同时给你一个整数数组 banned &#xff0c;它包含数组中的一些位置。b…