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.
相关推荐
lwewan12 分钟前
26考研——中央处理器_数据通路的功能和基本结构(5)
笔记·考研
Ronin30539 分钟前
【C++】16.继承
开发语言·c++
qq_4335545440 分钟前
C++ string初始化、string赋值操作、string拼接操作
开发语言·c++·算法
途中刂1 小时前
第一章 初识Java
java·开发语言·笔记·学习·intellij-idea
CodeWithMe1 小时前
【C/C++】跟我一起学_C++同步机制效率对比与优化策略
c语言·c++
终焉代码1 小时前
C++入门篇——类和对象(下)
开发语言·c++·算法
愚润求学1 小时前
【动态规划】斐波那契数列模型
c++·笔记·算法·leetcode·动态规划
程序猿(雷霆之王)1 小时前
贪心算法专题(Part1)
c++·算法·贪心算法
Susea&2 小时前
趣味编程:四叶草
c语言·开发语言·c++·技术美术
虾球xz2 小时前
游戏引擎学习第273天:动画预览
c++·学习·游戏引擎