ubuntu18.04 安装qt5.12.8及环境配置

2023-11-08

环境

系统:ubuntu18.04 
软件:qt5.12.8

一、下载安装包

下载地址http://download.qt.io/archive/qt/5.12/5.12.8/
在这里插入图片描述
点击需要的版本(我们这里选择.run的)会跳转到一个选择源的界面,国内选择(CN)的三者之一即可
在这里插入图片描述

二、安装

从终端进入下载文件夹,一般是/home/用户名/Downloads,可以找到下载好的qt-opensource-linux-x64-5.12.8.run
给所有用户赋予qt-opensource-linux-x64-5.12.8.run可执行权限

sudo chmod a+x qt-opensource-linux-x64-5.12.8.run

有权限后在该路经下执行就可以了

./qt-opensource-linux-x64-5.12.8.run

弹出安装指引窗口,按照指引填好QT Account(我记得以前有版本安装可以跳过),一路next,不建议修改默认路经。
在这里插入图片描述
按需安装,配置足够全选可以省事。

项目 说明
Desktop gcc 64-bit 这是使用桌面版 GCC 64-bit 编译环境生成的 Qt 库,是 Qt 的核心,必须安装。注意,虽然名字看起来像是 GCC 编译器套件,但实际上说的是 Qt 库的编译环境。大部分 Linux 发行版都会预装 GCC 编译器套件,所以 Qt 安装包没必要附带它们。
Android * 这是针对安卓应用开发的 Qt 库,如果读者有安卓开发这方面需求可以自己选择安装。
Sources Qt 的源代码包,按需安装。
Qt * Qt 的附加模块,大部分建议安装,这些附加模块括号里的 TP 是指 Technology Preview ,技术预览模块的意思,还处在功能测试阶段,不是正式版模块;附加模块括号里的 Deprecated 是指抛弃的旧模块,兼容旧代码使用的,一般用不到。这些附加模块读者可以选择部分或都勾选了安装,占用空间不大。部分组件说明:Qt Charts 是二维图表模块,用于绘制柱状图、饼图、曲线图等常用二维图表。Qt Data Visualization 是三维数据图表模块,用于数据的三维显示,如散点的三维空间分布、三维曲面等。Qt Scritp(Deprecated)是脚本模块,已被抛弃,不建议安装。
Qt Creator 4.3.0 这是集成开发环境,强制安装的,以后所有的项目和代码都在 Qt Creator 里面新建和编辑。

在这里插入图片描述
安装完成后,在你的应用里面就可以找到Qt Creator了
在这里插入图片描述
配置环境变量
需要配置环境变量后才能直接使用qmake命令
ubuntu中作用于所有用户,编辑/etc/profile文件

sudo vim /etc/profile

在末尾添加(注意:这里的路经对应安装路经,请检查自己的是否对应)

export PATH="/opt/Qt5.12.8/Tools/QtCreator/bin:$PATH"
export PATH="/opt/Qt5.12.8/5.12.8/gcc_64:$PATH"

修改完成后重启系统,或者使用"source /etc/profile"or ". /etc/profile"使得修改生效。source命令也称为“点命令”,也就是一个点符号(.)。source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。

在终端输入qtcreator就能直接打开Qt Creator

qtcreator

三、QT项目测试

我们再新建一个Qt项目测试一下
File>>New File or Project,选择Qt Widgets Application,测试用基本可以一路next,后面可以自行删除项目。
在这里插入图片描述
建好的test项目
在这里插入图片描述
在mainwindow.ui上添加一个textBrowser控件,写上标准问候语
在这里插入图片描述
运行>>>>>>>>>>>>>>报错…所谓“行百步者半九十”,都到这一步了,赶紧想办法解决
在这里插入图片描述
找到原因了

Qt 默认在 /usr/lib/ 目录下查找动态链接库,但是很多 Linux 发行版将 OpenGL 链接库放在其它目录,例如我使用的是 CentOS 7,OpenGL 链接库位于 /usr/lib64/ 目录,而对于 Ubuntu,OpenGL 链接库位于 /usr/lib/i386-linux-gnu/mesa/ 目录。只要我们把 libGL.so 拷贝到 /usr/lib/ 目录,或者在 /usr/lib/ 目录下为 libGL.so 创建一个链接,就能解决问题。显然第二种办法更好。
另外,Linux 发行版自带的 OpenGL 链接库在后缀中添加了版本号,例如 libGL.so.1、libGL.so.1.2.0、libGL.so.1.3.1 等,但是 Qt 在链接阶段查找的 OpenGL 链接库是不带版本号的。

总的来说,我们需要在 /usr/lib/ 目录下为 OpenGL 链接库创建一个链接,并去掉版本号。

如果你不知道当前 Linux 系统中 libGL.so 的具体路经,可以使用locate libGL命令或find /usr -name libGL*命令查找,然后使用ln -s创建链接。按照方法进行操作:
#查找 libGL 所在位置

# locate libGL
/usr/lib/x86_64-linux-gnu/libGL.so.1
/usr/lib/x86_64-linux-gnu/libGL.so.1.0.0
/usr/lib/x86_64-linux-gnu/libGLESv2.so.2
/usr/lib/x86_64-linux-gnu/libGLESv2.so.2.0.0
......

#创建链接,Linux 系统中可能存在多个版本的 libGL.so,为任意一个版本创建链接即可。普通用户没有权限创建链接,使用root用户或者sudo指令。

#sudo ln -s /usr/lib/x86_64-linux-gnu/libGL.so.1 /usr/lib/libGL.so

再次运行>>>>>>>>>>>>>>成功
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ubuntu18.04 安装qt5.12.8及环境配置 的相关文章

  • QtWebEngine Quicknano 在嵌入式 Linux 中没有声音

    我已将 QtWebEngine 编译到我的 i MX6 嵌入式设备中 当我尝试使用 Quicknanobrowser 播放 YouTube 视频时 视频会播放 但没有声音 事实上 当我尝试播放音频文件时没有声音hpr dogphilosop
  • 当在 python linux 中执行命令 os.system() 时,在 python 中给出响应 yes/no

    考虑一个像这样的命令 yum install boto 当我在终端中执行时 要继续 会询问我是 否 我可以像这样用 python 回应它吗 os system yum install boto Next Yes 将通过相同的 python
  • 无法连接到 Azure Ubuntu VM - 公钥被拒绝

    我们在 Azure 上使用 Ubuntu VM 一段时间了 很少遇到任何问题 然而 其中一台虚拟机最近出现了问题 出乎意料的是 Ubuntu VM 开始拒绝公钥 ssh i azure key email protected cdn cgi
  • 如何在Qt中更快地读取数据?

    Qt读取数据库比C 慢吗 我想我错过了一些东西 为了比较阅读速度 我在 Qt 中编写了以下内容 QElapsedTimer t t start int count 0 QString cs Driver SQL Server Server
  • 如何将命令输出作为多个参数传递给另一个命令

    我想将命令的每个输出作为多个参数传递给第二个命令 例如 grep pattern input returns file1 file2 file3 我想复制这些输出 例如 cp file1 file1 bac cp file2 file2 b
  • Linux 中有没有一种轻量级的方法来获取当前进程数?

    我希望我的 基于 C C 的 程序显示一个数字指示器 指示本地系统上当前有多少个进程 将经常查询正在运行的进程数值 例如每秒一次 以更新我的显示 有没有一种轻量级的方法来获取该数字 显然我可以调用 ps ax wc l 但我不想强迫计算机生
  • grep 彩色线条

    我编写了一个简单的 PHP shell 脚本 它解析文件并输出某些元素 它产生大量的输出 采用不同的 bash 颜色 绿色表示正常 黄色表示警告 红色表示错误等 在开发过程中我想过滤掉一些行 例如 所有包含红色文本的行 我可以使用grep
  • 这个格式错误的命令实际上发生了什么?

    问题在Vim 向后范围 可以交换 https stackoverflow com q 28224540 1427295原来是失踪了g在命令中 2 userid d 但是该命令仍然会运行 并将其转换为 userid firstname sur
  • GCC 详细模式输出解释

    我是 Linux 新手 谁能向我解释一下我的 hello world 程序的以下详细模式输出 另外 这些文件是做什么用的crt1 o crti o crtend o crtbegin o and crtn o and lc and lgcc
  • 渲染具有透明度的纹理时,OpenGL 不需要的像素

    我已经为这个问题苦苦挣扎了一段时间了 当我使用 OpenGL 渲染 2D 纹理 在无透明度和部分透明度之间的过渡上具有透明度值 时 我得到了一些烦人的灰色像素 我认为这是像素值插值的产物 关于如何改进这一点有什么想法吗 I m attach
  • vim e518:未知选项:

    我在 UNIX 系统上有一个文本文件 以下文本文件内容会产生问题 good ok line vi bad line ok ok line 所以如果我运行 vim test txt 我收到以下错误 test txt 3L 39C Error
  • 在 Android 2.2 上运行 HelloCordova 时找不到类“android.webkit.WebResourceResponse”

    我尝试按照本教程进行操作 http docs phonegap com en 2 7 0 guide getting started android index md html Getting 20 Started 20with 20 An
  • 优化 Keras 以使用所有可用的 CPU 资源

    好吧 我真的不知道我在说什么 所以请耐心听我说 我正在使用 Theano 后端运行 Keras 以在 MNIST 图像上运行基本的神经网络 目前只是一个教程 过去 我一直使用我的旧 HP 笔记本电脑 因为我有 Windows 和 Ubunt
  • sudo pip install python-Levenshtein 失败,错误代码 1

    我正在尝试在 Linux 上安装 python Levenshtein 库 但每当我尝试通过以下方式安装它时 sudo pip install python Levenshtein 我收到此错误 命令 usr bin python c 导入
  • 如何在 Vimscript 中调用普通模式的递增和递减命令?

    我正在尝试创建一个 Vimscript 函数 该函数随机递增 ro 递减光标下的数字 以便我可以从宏中调用它 到目前为止 我已经得到了这个 function RandomIncDec python import random python
  • “./somescript.sh”和“. ./somescript.sh”有什么区别

    今天我按照一些说明在 Linux 中安装软件 有一个需要首先运行的脚本 它设置一些环境变量 指令告诉我执行 setup sh 但是我执行时犯了一个错误 setup sh 所以环境没有设置 最后我注意到了这一点并继续进行 我想知道这两种调用脚
  • PHP 日志文件颜色

    我正在编写一个 PHP 日志文件类 但我想为写入文件的行添加颜色 我遇到的问题是颜色也会改变终端的颜色 我想要实现的是仅更改写入日志文件的行的颜色 class logClass extends Singleton private funct
  • 使用 hcitool 扫描低功耗蓝牙?

    当我运行此命令时 BLE 设备扫描仅持续 5 秒 sudo timeout 5s hcitool i hci0 lescan 输出显示在终端屏幕中 但是 当我将输出重定向到文件以保存广告设备的地址时 每次运行该命令时 我都会发现该文件是空的
  • Windows 10 中 Qt 桌面应用程序的缩放不当

    我正在为 Windows 10 编写一个简单的 Qt Widgets Gui 应用程序 我使用的是 Qt 5 6 0 beta 版本 我遇到的问题是它根本无法缩放到我的 Surfacebook 的屏幕上 这有点难以判断 因为 SO 缩放了图
  • php56 - CentOS - Remi 仓库

    我刚刚在测试盒上安装了 php 5 6 正常的 cli php 解释器似乎不存在 gt php v bash php command not found gt php56 v PHP 5 6 13 cli built Sep 3 2015

随机推荐

  • linux系统下更改pip默认下载源

    linux系统下更改pip默认下载源 很多教程让你创建什么什么文件的 不需要啊 不需要 我是用conda创建的虚拟环境 但是我喜欢用pip下载 在虚拟环境里面改这个配置就一句话 pip config set global index url
  • 51单片机测量方波信号周期

    利用T0作为定时器 T1作为计数器 主要思路 1 T1计数 工作模式 方式2 T0计时 工作模式 方式1 2 T1八位计数 赋初值0xFF 打开中断 开始计数 P3 5口输入被测量方波信号 3 进入T1中断 若TR0 0 则开始计时TR0
  • Solidity 合约安全,常见漏洞 (下篇)

    Solidity 合约安全 常见漏洞 下篇 Solidity 合约安全 常见漏洞 上篇 不安全的随机数 目前不可能用区块链上的单一交易安全地产生随机数 区块链需要是完全确定的 否则分布式节点将无法达成关于状态的共识 因为它们是完全确定的 所
  • React 常用的十个生命周期

    目录 前言 实例期 存在期 销毁期 总结 前言 学习一门语言 他的生周期我们是必须要理解 在这里就给大家讲解一下我们平常最常用到的一些生命周期 希望能给各位带来帮助 我们首先要知道 React的生命周期主要分为三部分 实例期 挂载期 存在期
  • yolov5 CUDA out of memory

    目录 yolov5 CUDA out of memory 训练笔记 训练时有时会可视化 生成anchors yolov5 CUDA out of memory yolov5训练 是1060 batch size为8 换一台电脑 batch
  • 技术选型:Sentinel vs Hystrix

    这是围绕 Sentinel 的使用场景 技术对比和实现 开发者实践等维度推出的系列文章的第三篇 第一篇回顾 Dubbo 的流量防卫兵 Sentinel如何通过限流实现服务的高可用性 传送门 第二篇回顾 RocketMQ 的保险丝 Senti
  • java jpa是什么_jpa是什么框架?jpa是什么意思?

    你了解jpa吗 很多人表示 对于jpa是一个什么框架并不是很了解 那么下面就一起通过下面的文章内容来了解一下jpa吧 jpa其实就是Java Persistence API的简称 它的中文名字是Java持久层API 是JDK 5 0注解或者
  • 【Java笔记+踩坑】MyBatisPlus基础

    导航 黑马Java笔记 踩坑汇总 JavaSE JavaWeb SSM SpringBoot 瑞吉外卖 SpringCloud SpringCloudAlibaba 黑马旅游 谷粒商城 目录 1 MyBatisPlus简介 1 1 回顾Sp
  • Vue声明周期(笔记-自己的理解)

    这是vue的生命图示 一共有八个生命周期函数 new Vue 创建Vue实例 相当于以下代码 var vm new Vue 之后就是init Event 和 LifeCycle 初始化事件和生命周期函数 beforeCreate 首先字面意
  • 一名全栈工程师的必备工具箱

    全栈工程师 也叫全端工程师 是指掌握多种技能 并能利用多种技能独立完成产品的人 全栈工程师熟悉多种开发语言 同时具备前端和后台开发能力 从需求分析 原型设计到产品开发 测试 部署 发布全流程都十分熟悉 全栈工程师由于经常研究各种技术 他不会
  • Responder与evil-winRM配合远程登录Windows

    0x01 evil winRM 0x01 1概述 在使用和介绍Responder之前 先来了解一下evil winRM evil winrm是Windows远程管理 WinRM Shell的终极版本 Windows远程管理是WS 管理协议的
  • 怎样判断两个链表相交并找到第一个相交点(微软数据结构面试题)

    来源 我是码农 转载请保留出处和链接 本文链接 http www 54manong com id 7 1 给出两个单向链表的头指针pHead1和pHead2 判断这两个链表是否相交 假设两个链表均不带环 如果两个链表相交于某一节点 那么在这
  • SpringMVC 中的视图如何使用 FreeMarker

    SpringMVC 中的视图如何使用 FreeMarker SpringMVC 是一个基于 Spring 框架的 Web 框架 它提供了一种方便的方式来处理 HTTP 请求和响应 在 SpringMVC 中 视图是用来渲染模型数据的组件 它
  • java es score_ES 使用FunctionScore实现自定义评分

    GET index type search explain query function score query 你的查询语句 field value factor field 字段 modifier log1p factor 0 1 bo
  • Python Requests模块session的使用建议

    本篇主要讲解Python Requests模块session的使用建议及整个会话中的所有cookie的方法 测试代码 服务端 下面是用flask做的一个服务端 用来设置cookie以及打印请求时的请求头 coding utf 8 from
  • 使用LinkedHashMap实现LRU算法

    LinkedHashMap是比HashMap多了一个链表的结构 与HashMap相比LinkedHashMap维护的是一个具有双重链表的HashMap LinkedHashMap支持2中排序一种是插入排序 即插入是什么顺序 读出来的就是什么
  • 什么是ConcurrentHashMap?

    文章目录 什么是ConcurrentHashMap ConcurrentHashMap 的主要特性 ConcurrentHashMap 的用法 ConcurrentHashMap 的实现原理 在什么场景使用ConcurrentHashMap
  • 47黑马QT笔记之Qt下Udp通信过程例子及实现广播与组播

    47黑马QT笔记之Qt下Udp通信过程例子及实现广播与组播 1 客户端 客户端需要注意一点 客户端没有绑定端口的话 服务端无法发送信息给客户端 Linux下可以是因为他们在同一端口 所以Qt下你也在同一端口内通信 即窗口内自己连自己的Ip和
  • 五.LLC谐振变换器

    LLC 谐振变换器启动过程分析 LLC 谐振变换器的组成结构中包含容性器件 为了尽可能减小输出电压纹波 钳位输出电压 此时希望输出滤波电容尽可能的大 因此也会在启动的时候 电容两端电压近似为 0 系统对电容进行充电 此时的电路电流很大 可以
  • ubuntu18.04 安装qt5.12.8及环境配置

    文章目录 一 下载安装包 二 安装 三 QT项目测试 环境 系统 ubuntu18 04 软件 qt5 12 8 一 下载安装包 下载地址http download qt io archive qt 5 12 5 12 8 点击需要的版本