qt-C++笔记之ubuntu22.04源码安装Qt6.8.2

qt-C++笔记之ubuntu22.04源码安装Qt6.8.2

在这里插入图片描述

code review!

文章目录

  • qt-C++笔记之ubuntu22.04源码安装Qt6.8.2
    • 1.作者环境:ubuntu22.04、cmake20
    • 2.安装
    • 3.关联已安装的 Qt6 到 Qt Creator
    • 4.附:ubuntu18.0的处理,可尝试,作者没有遇到这个问题

1.作者环境:ubuntu22.04、cmake20

安装包:qt-everywhere-src-6.8.2.tar.xz
下载地址:https://download.qt.io/archive/qt/6.8/6.8.2/single/

安装参考链接:https://www.ics.com/blog/how-build-qt-640-source-ubuntu-linux

Ubuntu 18.04 上安装 glibc 2.28 支持 QT6:https://xujinzh.github.io/2024/01/05/ubuntu-18-04-install-glibc2-28/index.html

2.安装

当前终端地gcc-11 g+±11设置

sudo apt update
sudo apt install gcc-11 g++-11 -y
export CC=/usr/bin/gcc-11
export CXX=/usr/bin/g++-11

安装:先在opt目录下mkdir qt6文件夹

user@vm:~/qt-everywhere-src-6.8.2/build$ 目录下执行

cmake -DCMAKE_INSTALL_PREFIX=/opt/Qt6/6.8.2 \
      -DQT_BUILD_WEBENGINE=OFF \
      -DQT_BUILD_WEBCHANNEL=OFF \
      -DQT_BUILD_WEBVIEW=OFF \
      ..

cmake --build . -j1

sudo make install

这样会把qt安装到/opt/Qt6/6.8.2中,也可以安装到别到想安装到目录中。

3.关联已安装的 Qt6 到 Qt Creator

关联已安装的 Qt6 到 Qt Creator 的方法如下:

  1. 打开 Qt Creator 设置
    启动 Qt Creator 后,从菜单中选择
    Tools(工具) → Options(选项)
    在打开的对话框中点击 Build & Run(构建与运行)

  2. 添加新的 Qt 版本
    切换到 Qt Versions 标签页。
    点击 Add 按钮(有时会标记为“添加”或加号),然后浏览到安装的 Qt6 目录下的 bin 文件夹。
    例如,如果将 Qt6 安装在 /opt/Qt6/6.8.2 下,那么选择
    /opt/Qt6/6.8.2/bin/qmake(注意:即使 Qt6 趋向于使用 CMake 来构建,默认配置通常还会包含 qmake,用于兼容项目。如果没有生成 qmake,请确保在配置编译参数时没有禁用相关选项)。
    Qt Creator 会自动检测并显示该版本的信息。

  3. 创建或修改 Kit
    切换到 Kits 标签页。

    • 可以选择修改现有的桌面 Kit,或点击 Add 新增一个 Kit。
    • 在 Kit 设置中,将 Qt version 选项选择为刚才添加的 Qt6 版本。
    • 同时确保相应的编译器、调试器和 CMake(如果使用 CMake 项目)都配置正确。
      这一步骤保证了新添加的 Qt6 版本能够应用到所选择的构建 Kit 中。
  4. 应用并测试
    点击 ApplyOK 保存设置。
    可以通过创建一个简单的 Qt 项目,并在项目属性中选择使用刚刚配置的 Kit 来测试 Qt6 是否正常工作。

注意:

  • 如果选择了安装目录 /opt/Qt6/6.8.2 来安装 Qt6,通常需要使用 sudo make install 来将文件写入该目录,确保使用管理员权限。
  • 如果在编译时未生成 qmake,而只生成了 CMake 构建工具相关文件,则在 Qt Creator 中使用相应的 CMake 配置即可。不过,大多数使用 Qt 的项目(尤其是通过 Qt Creator 新建的项目)依赖 qmake 来进行一些自动化设置,所以建议确保 qmake 已随 Qt6 构建并安装。

完成以上步骤后,Qt Creator 就已关联了新安装的 Qt6 环境,可以正常编译和调试基于 Qt6 开发的应用程序。

4.附:ubuntu18.0的处理,可尝试,作者没有遇到这个问题

查看系统支持的 GLIBC 版本号

ldd --version

# or
strings /lib/x86_64-linux-gnu/libc.so.6 | grep GLIBC_

安装 GLIBC 2.28

sudo su -c 'echo "deb http://security.debian.org/debian-security buster/updates main" >> /etc/apt/sources.list' root

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 112695A0E562B32A 54404762BBB6E853

sudo apt update

sudo apt install libc6 libc6-dev -y

安装成功后再次查看

ldd --version

# or
strings /lib/x86_64-linux-gnu/libc.so.6 | grep GLIBC_2.28

需要C++17,否则报下面的错:

/home/user/qt-everywhere-src-6.8.2/qtbase/src/corelib/text/qlocale_tools.cpp:21:10: fatal error: charconv: No such file or directory
 #include <charconv>
          ^~~~~~~~~~
compilation terminated.

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

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

相关文章

单例模式(线程案例)

单例模式可以分为两种&#xff1a;1.饿汉模式 2.懒汉模式 一.饿汉模式 //饿汉模式&#x1f447; class MySingleTon{//因为这是一个静态成员变量&#xff0c;在类加载的时候&#xff0c;就创建了private static MySingleTon mySingleTon new MySingleTon();//创建一个静…

基于Matlab的多目标粒子群优化

在复杂系统的设计、决策与优化问题中&#xff0c;常常需要同时兼顾多个相互冲突的目标&#xff0c;多目标粒子群优化&#xff08;MOPSO&#xff09;算法应运而生&#xff0c;作为群体智能优化算法家族中的重要成员&#xff0c;它为解决此类棘手难题提供了高效且富有创新性的解决…

(2025年)工会考试该如何高效备考?有学习方法吗?

工会考试备考文章 工会考试高效备考指南 工会在维护职工权益、促进企业和谐发展中扮演着重要角色&#xff0c;工会考试则是选拔优秀工会工作者的关键途径。面对工会考试涉及的法律法规、组织管理以及维权服务等多方面知识&#xff0c;掌握科学备考方法是成功的关键。 法律法规是…

《机器学习数学基础》补充资料:向量范数

《机器学习数学基础》第1章1.5.3节介绍了向量范数的基本定义。 本文在上述基础上&#xff0c;介绍向量范数的有关性质。 注意&#xff1a; 以下均在欧几里得空间讨论&#xff0c;即欧氏范数。 1. 性质 实&#xff08;或复&#xff09;向量 x \pmb{x} x &#xff0c;范数 ∥…

Unity NGUI新手向几个问题记录

1.点Button没反应 制作Button组件时&#xff0c;不光要挂载Button脚本&#xff0c;还有挂载BoxCollider BoxCollider 接收事件 2.Button点击事件的增加与删除 使用.onClick.add增加事件&#xff0c;使用.onClick.Remove,.onClick.RemoveAt,onClick.RemoveRang,onClick.Clear移…

servlet tomcat

在spring-mvc demo程序运行到DispatcherServlet的mvc处理 一文中&#xff0c;我们实践了浏览器输入一个请求&#xff0c;然后到SpringMvc的DispatcherServlet处理的整个流程. 设计上这些都是tomcat servlet的处理 那么究竟这是怎么到DispatcherServlet处理的&#xff0c;本文将…

UniApp 中封装 HTTP 请求与 Token 管理(附Demo)

目录 1. 基本知识2. Demo3. 拓展 1. 基本知识 从实战代码中学习&#xff0c;上述实战代码来源&#xff1a;芋道源码/yudao-mall-uniapp 该代码中&#xff0c;通过自定义 request 函数对 HTTP 请求进行了统一管理&#xff0c;并且结合了 Token 认证机制 请求封装原理&#xff…

【音视频】ffmpeg命令分类查询

一、ffmpeg命令分类查询 -version&#xff1a;显示版本 ffmpeg -version-buildconf&#xff1a;显示编译配置&#xff0c;这里指的是你编译好的ffmpeg的选项 ffmpeg -buildconf-formats:显示可用格式&#xff08;muxersdemuxers&#xff09;&#xff0c;复用器和解复用器&am…

基于Windows11的DockerDesktop安装和布署方法简介

基于Windows11的DockerDesktop安装和布署方法简介 一、下载安装Docker docker 下载地址 https://www.docker.com/ Download Docker Desktop 选择Download for Winodws AMD64下载Docker Desktop Installer.exe 双点击 Docker Desktop Installer.exe 进行安装 测试Docker安装是…

C++发展

目录 ​编辑C 的发展总结&#xff1a;​编辑 1. C 的早期发展&#xff08;1979-1985&#xff09; 2. C 标准化过程&#xff08;1985-1998&#xff09; 3. C 标准演化&#xff08;2003-2011&#xff09; 4. C11&#xff08;2011年&#xff09; 5. C14&#xff08;2014年&a…

爬虫Incapsula reese84加密案例:Etihad航空

声明: 该文章为学习使用,严禁用于商业用途和非法用途,违者后果自负,由此产生的一切后果均与作者无关 一、找出需要加密的参数 1.js运行 atob(‘aHR0cHM6Ly93d3cuZXRpaGFkLmNvbS96aC1jbi8=’) 拿到网址,F12打开调试工具,随便搜索航班,切换到network搜索一个时间点可以找…

【分享】网间数据摆渡系统,如何打破传输瓶颈,实现安全流转?

在数字化浪潮中&#xff0c;企业对数据安全愈发重视&#xff0c;网络隔离成为保护核心数据的重要手段。内外网隔离、办公网与研发网隔离等措施&#xff0c;虽为数据筑牢了防线&#xff0c;却也给数据传输带来了诸多难题。传统的数据传输方式在安全性、效率、管理等方面暴露出明…

uploadlabs经验总结

目录 一、基础上传漏洞&#xff08;太过简单目前环境不可能存在&#xff09; 1、抓包然后改后缀进行绕过 2、抓包然后改上传文件类型进行绕过 3、改后缀大小写绕过&#xff0c;以及收尾加空格&#xff0c;加::$DATA,加点等等 4、黑名单不完整绕过&#xff0c;复习后缀绕过&…

数据结构:二叉树的链式结构及相关算法详解

目录 一.链式结构的实现 1.二叉树结点基本结构&#xff0c;初始化与销毁&#xff1a; 二.链式结构二叉树的几种遍历算法 1.几种算法的简单区分&#xff1a; 2.前序遍历&#xff1a; 3.中序遍历&#xff1a; 4.后序遍历&#xff1a; 5.层序遍历&#xff08;广度优先遍历B…

VSCode 移除EmmyLua插件的红色波浪线提示

VSCode 中安装插件EmmyLua&#xff0c;然后打开lua文件的时候&#xff0c;如果lua代码引用了C#脚本的变量&#xff0c;经常出现 “undefined global variable: UnityEngineEmmyLua(undefined-global)” 的红色波浪线提示&#xff0c;这个提示看着比较烦人&#xff0c;我们可以通…

MWC 2025 | 紫光展锐联合移远通信推出全面支持R16特性的5G模组RG620UA-EU

2025年世界移动通信大会&#xff08;MWC 2025&#xff09;期间&#xff0c;紫光展锐联合移远通信&#xff0c;正式发布了全面支持5G R16特性的模组RG620UA-EU&#xff0c;以强大的灵活性和便捷性赋能产业。 展锐芯加持&#xff0c;关键性能优异 RG620UA-EU模组基于紫光展锐V62…

springboot425-基于SpringBoot的BUG管理系统(源码+数据库+纯前后端分离+部署讲解等)

&#x1f495;&#x1f495;作者&#xff1a; 爱笑学姐 &#x1f495;&#x1f495;个人简介&#xff1a;十年Java&#xff0c;Python美女程序员一枚&#xff0c;精通计算机专业前后端各类框架。 &#x1f495;&#x1f495;各类成品Java毕设 。javaweb&#xff0c;ssm&#xf…

机器人“照镜子”:开启智能新时代

机器人也爱 “照镜子”&#xff1f; 在科技飞速发展的今天&#xff0c;机器人的身影越来越频繁地出现在我们的生活和工作中。它们承担着各种各样的任务&#xff0c;从工业生产线上的精密操作&#xff0c;到家庭中的清洁服务&#xff0c;再到危险环境下的救援工作。然而&#xf…

让 LabVIEW 程序更稳定

LabVIEW 开发的系统&#xff0c;尤其是工业级应用&#xff0c;往往需要长时间稳定运行&#xff0c;容不得崩溃、卡顿或数据丢失。然而&#xff0c;许多系统在实际运行中会遭遇内存泄漏、通信中断、界面卡顿等问题&#xff0c;导致生产中断甚至设备损坏。如何设计一个既稳定又易…

基于CURL命令封装的JAVA通用HTTP工具

文章目录 一、简要概述二、封装过程1. 引入依赖2. 定义脚本执行类 三、单元测试四、其他资源 一、简要概述 在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具&#xff0c;可以说是一款很强大的http命令行工具。它支持文件的上传和下载&#xff0c;是综合传输工具&…