0


ubuntu22.04-编译安装Qt5.15.3-C++

文章目录

在Ubuntu 22.04 LTS(Jammy Jellyfish)环境下编译Qt 5.15,由于Ubuntu 22.04的官方仓库不再提供Qt 5.15系列的支持,您需要从源代码编译。以下是编译Qt 5.15的大致步骤:

步骤一:安装依赖项

确保系统中已经安装了必要的编译工具和依赖包,例如:

sudoapt update
sudoaptinstall build-essential libfontconfig1-dev libfreetype6-dev libx11-dev libxext-dev libxrender-dev libxcb1-dev libxi-dev libgl1-mesa-dev libssl-dev gperf libicu-dev pkg-config bison flex qtchooser
sudoaptinstall libdbus-1-dev

xcb

sudoapt-getinstall'^libxcb.*-dev' libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev
xcb

Qt

是两个在图形用户界面(GUI)编程中经常遇到的概念。

  1. **xcb (X C Binding)**:它是X Window System的一个现代客户端接口库,提供了与X服务器进行通信的低级别接口。X Window System是Linux和其他类Unix系统中最常用的窗口系统。xcb通过C语言实现了对X协议的绑定,使得开发者可以直接利用C语言编写高性能、高效率的图形应用程序,相比传统的Xlib库,xcb在设计上更高效,支持异步IO,减少了不必要的同步等待。
  2. Qt:它是一个跨平台的应用程序开发框架,可以用于创建丰富的图形用户界面以及各种应用程序,不仅限于桌面应用,也适用于移动设备和嵌入式设备。Qt提供了一系列的API和工具来简化GUI编程,如窗口、按钮、菜单等各种UI组件,同时也支持网络、数据库等多种功能。Qt在内部既可以使用Xcb作为其在X Window System上的后端渲染引擎,也可以选择其它方式如OpenGL、Wayland等,以实现高效的图形渲染和窗口管理。

总的来说,在基于Linux的图形编程环境中,xcb负责底层的窗口系统交互,而Qt则是在此之上为开发者提供了一套高级、易用且功能强大的应用程序开发框架。

步骤二:下载Qt 5.15源代码

访问Qt官网的Archive部分下载Qt 5.15的源代码包,例如

qt-everywhere-src-5.15.2.zip

.tar.xz

格式。

wget https://download.qt.io/archive/qt/5.15/5.15.2/single/qt-everywhere-src-5.15.2.tar.xz
tar-xf qt-everywhere-src-5.15.2.tar.xz
cd qt-everywhere-src-5.15.2

步骤三:配置并编译Qt

创建一个构建目录,并在其中进行配置和编译。您可以选择只编译所需的模块,如qtbase、qtdeclarative等,或者编译全部模块。以下是一个基本的全局编译示例:

mkdir build
cd build
../configure -opensource -confirm-license -nomake examples -nomake tests -release../configure -opensource -confirm-license -nomake examples -nomake tests -nomake qt3d -debug-and-release

# 如果您需要支持特定平台或特性,比如gtk2主题,则添加相关选项,例如:# ../configure -opensource -confirm-license -nomake examples -nomake tests -release -qt-xcb -qt-gtk2make-j8sudomakeinstall#其它编译命令mkdir build &&cd build
../configure -xcb-opensource -confirm-license -proprietary-codecs -no-feature-webengine-system-ninja -nomake examples -nomake tests
../configure -xcb-opensource -confirm-license -skip qtwebengine -nomake examples -nomake tests
make-jsudomakeinstall# 或者使用如下命令编译# gmake && sudo gmake install#检查xcb是否齐全../configure -recheck-all

错误1

\qt-everywhere-src-5.15.3\qtbase\src\corelib\text\qbytearraymatcher.h 添加 #include <limits>

步骤四:配置环境变量

系统级别:

/etc/environment:系统范围内的环境变量配置文件,适用于所有用户和进程,在这个文件中设置的环境变量会被所有用户和进程共享。由于该文件是系统范围的,所以需要管理员权限才能修改。修改完这个文件后,需要重新登录才能使设置的环境变量生效。
/etc/profile:系统范围内的 shell 配置文件,它在登录时被读取,并在登录 shell 启动时执行。在这个文件中设置的环境变量会被所有登录的用户继承。该文件通常用于设置系统范围的环境变量,例如 PATH 等变量。。
/etc/bash.bashrc:系统范围内的 Bash shell 配置文件,包含了 Bash shell 启动时需要加载的环境变量和 shell 函数等信息。

用户级别:

~/.bashrc:当前用户的 Bash shell 配置文件,它会在每个新的交互式 Bash shell 启动时执行。在这个文件中设置的环境变量只会对当前用户的 Bash shell 有效。该文件通常用于设置当前用户的 Bash shell 环境变量和个性化配置。
~/.bash_profile:当前用户的 Bash shell 配置文件,但它只会在第一个登录 shell 启动时执行。如果这个文件存在,Bash 将不会执行 ~/.bashrc 文件。在这个文件中设置的环境变量只会对当前用户的登录 shell 有效。该文件通常用于设置当前用户的登录 shell 环境变量。
~/.profile:当前用户的 shell 配置文件,它会在登录时被读取并执行。在这个文件中设置的环境变量只会对当前用户的登录 shell 有效。该文件通常用于设置当前用户的登录 shell 环境变量和个性化配置。
~/.pam_environment:PAM 环境文件,PAM(Pluggable Authentication Modules)是一个系统级认证框架,它提供了一个标准化的接口,允许不同的认证方式在系统中交互。在这个文件中设置的环境变量会对当前用户和所有进程都有效。该文件通常用于设置用户级别的环境变量。
为什么要先讲一下这些,因为这些可以让大家更好的理解环境变量该通过修改哪个文件比较合适,防止”我明明设置了环境变量,为什么没有生效呢?“这种情况发生。

Qt各环境变量详解

QTDIR:Qt的根目录,其中包含bin、lib、include和mkspecs等子目录。
PATH:设置Qt可执行文件的搜索路径,包括Qt的bin目录和其他相关目录。
LD_LIBRARY_PATH:设置Qt运行时库的搜索路径,包括Qt的lib目录和其他相关目录。
QT_PLUGIN_PATH:设置Qt插件的搜索路径,包括Qt的plugins目录和其他相关目录。
QT_INCLUDE_PATH:设置Qt头文件的搜索路径,包括Qt的include目录和其他相关目录。
QT_LIBS:设置要使用的Qt库的名称列表。
QMAKE:指定要使用的qmake版本的路径,它是Qt的构建系统。
QMAKESPEC:指定要使用的mkspecs的名称,用于指定目标平台和编译器选项等。
QT_DEBUG:设置是否启用Qt的调试模式。
QT_NO_DEBUG:设置是否禁用Qt的调试模式。
QT_BUILD_TREE:指定Qt构建的根目录,其中包含src、mkspecs和tools等子目录。
QT_INSTALL_PREFIX:指定Qt的安装目录。
QT_INSTALL_BIN:指定Qt可执行文件的安装目录。
QT_INSTALL_LIBS:指定Qt库文件的安装目录。
QT_INSTALL_HEADERS:指定Qt头文件的安装目录。
QT_INSTALL_PLUGINS:指定Qt插件的安装目录。

sudo gedit /etc/profile
#内容exportQTDIR=/usr/local/Qt-5.15.3
exportPATH=$QTDIR/bin:$PATHexportLD_LIBRARY_PATH=$QTDIR/lib

编译完成后,为了能够方便地使用新编译的Qt版本,可以更新环境变量PATH,将新安装的bin目录添加进去:

echo'export PATH=/usr/local/Qt-5.15.2/bin:$PATH'>> ~/.bashrc
source ~/.bashrc

请根据实际情况调整上述路径以指向实际安装位置。

命令安装

sudoapt-getinstall qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools
sudoapt-getinstall qtcreator
sudoapt-getinstall qt5*

注意事项

  • 编译过程可能需要较长时间,取决于您的硬件性能。
  • 在某些情况下,您可能还需要针对特定目标架构或交叉编译进行配置,这会涉及更多的编译参数。
  • Qt 5.15版本不再提供长期技术支持,可能存在与最新Linux内核或其他库不兼容的问题,因此在生产环境中谨慎考虑是否需要降级到这个版本。

更新于2024年

如果您是在2024年执行此操作,请务必检查Qt 5.15源代码与当前Ubuntu 22.04系统组件的兼容性,以及是否有新的已知问题需要解决。如果有可能,建议升级到更高版本的Qt,或者寻找社区维护的适用于Ubuntu 22.04的Qt 5.15 PPA。


本文转载自: https://blog.csdn.net/m0_67316550/article/details/136059332
版权归原作者 插件开发 所有, 如有侵权,请联系我们删除。

“ubuntu22.04-编译安装Qt5.15.3-C++”的评论:

还没有评论