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

news2024/11/14 18:28:09

直接通过源码来编译安装 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 "                 # 编译模式: debug

CONFIG_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.coloradmin.cn/o/1080234.html

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

相关文章

vscode虚拟环境使用jupyter

在某虚拟环境内安装torch,但是ipyn文件保存后无法正常导入torch 1.conda环境下安装Jupyter等一切配置,进入虚拟环境 2.conda install nb_conda_kernels 3.安装完成后重新打开VSCode,在运行Jupyter notebook中的代码之前,在右上…

虹科案例 | 瑞士苏黎世联邦理工学院ETH Zurich:记录马匹不同步态和活动测量

瑞士苏黎世联邦理工学院ETH Zurich:记录马匹不同步态和活动测量 ——用于动物测量研究的数据记录仪:虹科MSR145 对马匹的运动活动和休息行为的观察通常用于评估其饲养和管理的安全与健康。研究测试了虹科MSR145数据记录仪在判别马匹步态方面的适用性。 …

如何限制word文件中部分内容无法编辑

工作中我们经常会用到Word制作一些文件,文件中有一部分内容不想他人编辑,我们可以设置限制编辑,可以对一部分内容设置限制编辑,具体方法如下: 我们将需要将可以编辑的地方选中,然后打开限制编辑功能 然后勾…

Jenkins安装多个jdk版本,并在项目中选择对应jdk版本

下载jdk版本:进入oracle官网下载官方jdk Java Downloads | Oracle 例:比如项目需要使用java8.341的版本,而jenkins用的是java11的版本,这里就需要下载多个jdk版本。进入下载网址,Java Archive Downloads - Java SE 8u…

不写注释就是在耍流氓

从前,在一个繁忙的城市里,住着一群才华横溢的程序员。他们以出色的编程技巧和能力在制作复杂的软件系统方面闻名。其中有一位年轻的程序员叫做小明。 小明在编写代码方面非常有天赋。他热爱逻辑思维、问题解决,并追求让事物运作的激情。然而…

关于:未同意隐私政策,应用获取ANDROID ID问题2

一、环境 Unity2018 4.21f1、Android Studio、Windows10 二、问题描述 在发布应用到华为应用市场时,提示“在用户同意隐私政策前,您的应用获取了用户的ANDROID ID,不符合华为应用市场审核标准。” 如果你想去掉获取ANDROID ID的代码可以参…

佳音通讯400电话在线选号服务

随着互联网的快速发展,越来越多的企业开始意识到电话营销的重要性。作为一种直接、高效的沟通方式,电话营销在企业推广和销售中发挥着重要的作用。然而,很多企业在选择电话号码时遇到了困扰,不知道如何选择一个好记、好用的号码。…

工作相关----《系统部署相关操作》

(1)修改带外IP地址 修改完成后,再重新使用新的带外IP登录下试试,确保IP修改成功; (2)确认物理端口对应的配置文件; 进入远程控制台,确认“业务主,业务备,备份主,备份备”网络端口&…

项目文件上传到行云codeup teambition

接手公司好几年的老项目,在行云上已经有1.9G的大小所以被限制上传了 只有花钱扩容或者重新建库。 1.重新建库:登录你的行云账户在代码库中新建代码库(网上有详细的) 创建成功后的库中只有readme文件。 2.复制代码库的下载地址 …

第六章-完善内核

Ⅰ.函数调用约定 首先,函数调用在处理器执行过程中实际是栈的切换,从当前执行任务的栈切换到另一个栈,但是切换过程中涉及到参数传递方式、参数传递顺序、栈的销毁等,因此在切换过程中需要明确函数调用约定。 根据下面表可看出在…

linux后台运行java项目/ jar包:nohup 命令

1.提出问题 我们把一个 SpringBoot 工程导出为 jar 包,jar 包上传到阿里云 ECS 服务器上,使用 java -jar xxx-xxx.jar 命令启动这个 SpringBoot 程序。此时我们本地的 xshell 客户端必须一直开着,一旦 xshell 客户端关闭,java -j…

Gin,Gorm实现Web计算器

目录 仓库链接0.PSP表格1. 成品展示1.基础运算2. 清零回退3.错误提示4.历史记录拓展功能1.前端可修改的利率计算器2.科学计算器3. 按钮切换不同计算器模式4.用户在一次运算后不清零继续输入操作符,替换表达式为上次答案 2.设计实现过程3.代码说明4.心路历程和收获 仓…

大模型/LLM的涌现能力

新浪张俊林–中国人工智能学会演讲 文章目录 什么是大模型的涌现能力LLM表现的涌现能力1. In Context Learning -- 情景学习2. CoT3. 其他涌现能力 LLM模型规模和涌现能力的关系模型训练中的顿悟现象:GrokkingLLM涌现能力的可能原因 什么是大模型的涌现能力 涌现&a…

message“: “CSRF token mismatch

tableData,noticeData 是两个长二维数组 $.ajax({url: "/admin/samproofing/confirmPieces",type: "POST",data: {"ym": ym1,"papertype":paper_type,"person_data": that.tableData,"notice_data": t…

Servlet入门

URL和URI: URL统一资源定位符,表示对外暴露的整个网址 URI统一资源标示符,表示资源的访问路径,与servlet绑定的地址 HTTP请求结构: HTTP请求包含三部分:请求行、请求头、请求体 请求行包含:请…

被替换掉的文件如何找回来?

当我们在编辑文件时,通常会直接保存而不是另存为新文件,这样会替换原始文件的信息。如果需要对原始文件进行二次编辑,情况就会比较复杂。那么被替换掉的文件还能找回来吗? 被替换的文件是否可以恢复? 这取决于替换原始…

【论文笔记】A theory of learning from different domains

防盗 https://www.cnblogs.com/setdong/p/17756127.html domain adaptation 领域理论方向的重要论文. 这篇笔记主要是推导文章中的定理, 还有分析定理的直观解释. 笔记中的章节号与论文中的保持一致. 1. Introduction domain adaptation 的设定介绍: 有两个域, source domain…

智慧空开让用电更安全、管理更智能——电脑APP远程控制开合闸

安科瑞 崔丽洁 01 什么是低压断路器?低压断路器的定义是:能够接通、承载及分断正常电路条件下的电流,也能在规定的非正常电路条件(过载、短路、特别是短路)下接通、承载一定时间和分断电流的开关电器。 断路器的分类&…

go语言教程4:switch和map

文章目录 switchswitch匹配字典 go语言教程:安装入门➡️for循环➡️数组、切片和指针 switch和map,一个是控制流,一个是数据结构,之所以把两个不同类型的知识点放在一起讲解,是因为二者有着极其相似的运行逻辑&#…

WSL+vscode配置miniob环境

1.配置WSL Windows Subsystem for Linux入门:安装配置图形界面中文环境vscode wu-kan 2.获取源码 找个位置Git Bash然后拉取代码 git clone https://github.com/oceanbase/miniob.git 3.安装相关依赖 https://gitee.com/liangcha-xyy/source/blob/master/how…