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.
相关推荐
rufeike25 分钟前
Redis学习笔记
redis·笔记·学习
晨曦backend4 小时前
Vim 替换命令完整学习笔记
笔记·学习·vim
机器视觉知识推荐、就业指导5 小时前
C++/Qt 联合编程中的定时器使用陷阱:QObject::startTimer 报错详解
c++·qt
慢半拍iii5 小时前
数据结构——D/串
c语言·开发语言·数据结构·c++
蒙奇D索大5 小时前
【11408学习记录】[特殊字符] 速解命题核心!考研数学线性代数:4类行列式满分技巧(含秒杀公式)
笔记·学习·线性代数·考研·改行学it
邪恶的贝利亚5 小时前
从基础到实战-rmpt to webrtc
c++·webrtc·rtmp·流媒体
江池俊6 小时前
通过Docker和内网穿透技术在Linux上搭建远程Logseq笔记系统
linux·笔记·docker
moxiaoran57536 小时前
uni-app学习笔记三十六--分段式选项卡组件的使用
笔记·学习·uni-app
笑鸿的学习笔记6 小时前
Windows笔记之Win11让非焦点窗口程序也能获得流畅性能的方法
windows·笔记
whoarethenext6 小时前
使用 C/C++ 和 OpenCV 提取图像的感兴趣区域 (ROI)
c语言·c++·opencv