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

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

code review!

文章目录

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设置

bash 复制代码
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文件夹

bash 复制代码
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 版本号

bash 复制代码
ldd --version

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

安装 GLIBC 2.28

bash 复制代码
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

安装成功后再次查看

bash 复制代码
ldd --version

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

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

bash 复制代码
/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.
相关推荐
青春_strive8 分钟前
Qt:文件
开发语言·qt
wen__xvn8 分钟前
每日一题蓝桥杯P8598 [蓝桥杯 2013 省 AB] 错误票据c++
开发语言·数据结构·c++·算法
JuicyActiveGilbert18 分钟前
【C++设计模式】第一篇:单例模式(Singleton)
c++·单例模式·设计模式
救救孩子把1 小时前
智能笔记,智慧管理:Obsidian 与 DeepSeek 携手引领 AI 知识新时代
人工智能·笔记·大模型·deepseek
重生之成了二本看我逆天改命走向巅峰1 小时前
从0搭建Tomcat第二天:深入理解Servlet容器与反射机制
java·开发语言·笔记·学习·servlet·tomcat·idea
数维学长9861 小时前
【2025rust笔记】超详细,小白,rust基本语法
开发语言·笔记·rust
Komorebi.py1 小时前
文件上传漏洞:upload-labs靶场11-20
笔记·安全·文件上传
solomonzw1 小时前
C++ 学习(八)(模板,可变参数模板,模板专业化(完整模板专业化,部分模板专业化),类型 Traits,SFINAE(替换失败不是错误),)
c语言·开发语言·c++·学习
程序员JerrySUN2 小时前
在 Ubuntu 20.04 上交叉编译 Qt 5 应用,使其可在 Windows 运行
windows·qt·ubuntu
阳洞洞2 小时前
“nullptr“ should be used to denote the null pointer
开发语言·c++