Linux源码编译QT和QTCreator

Linux系统中QT安装

源码安装流程可参考:Linux对源码编译过程的探究之GCC&make&cmake

在线安装

这种安装方式需要一个qt账户,并且操作流程如下:首先是下载在线安装脚本,官方下载地址。一般在国外,可能会出现下载缓慢的问题(没啥感觉)。可以选用国内镜像,比如:中科大或者清华

一般地址中有两个文件,.run用于Linux系统,.dmg用于Mac系统,.exe用于Window系统。这里以ubuntu系统举例,使用中科大源下载运行脚本。

# 获取
wget http://mirrors.ustc.edu.cn/qtproject/official_releases/online_installers/qt-unified-linux-x64-online.run

# 分配执行权限
> chmod a+x qt-unified-linux-x64-online.run 

# 使用指定源安装,点击回车后就会出现安装界面
> ./qt-unified-linux-x64-online.run --mirror http://mirrors.ustc.edu.cn/qt/

在这里插入图片描述

然后根据提示一步一步操作就行,该方法必须应用于图形化界面的方式。

源码编译安装

同样也是先下载,去官网或者国内的中科大清华/official_releases/qt/下寻找源码文件,下载即可。

# 以的qt6华中科qt6.4.2为例
> wget http://mirrors.ustc.edu.cn/qtproject/official_releases/qt/6.4/6.4.2/single/qt-everywhere-src-6.4.2.tar.xz

对于qt6.4而言,需要依赖很多版本的依赖库,这里列举在ubuntu22.04下编译成功所需要安装的依赖库软件。(需要空间1G多)

> sudo apt install bison build-essential clang flex gperf libatspi2.0-dev libbluetooth-dev libclang-dev libcups2-dev libdrm-dev libegl1-mesa-dev libfontconfig1-dev libfreetype6-dev libgstreamer1.0-dev libhunspell-dev libnss3-dev libopengl-dev libpulse-dev libssl-dev libts-dev libx11-dev libx11-xcb-dev libxcb-glx0-dev libxcb-icccm4-dev libxcb-image0-dev libxcb-keysyms1-dev libxcb-randr0-dev libxcb-render-util0-dev libxcb-shape0-dev libxcb-shm0-dev libxcb-sync-dev libxcb-util-dev libxcb-xfixes0-dev libxcb-xinerama0-dev libxcb-xkb-dev libxcb1-dev libxcomposite-dev libxcursor-dev libxdamage-dev libxext-dev libxfixes-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev libxkbfile-dev libxrandr-dev libxrender-dev libxshmfence-dev libxshmfence1 llvm ninja-build nodejs python-is-python3 python2

进入源码的根目录,进行编译,并指定其安装目录(这里注意一下,尽量将编译过程的Cache文件放在一个单独文件夹中,否则如果后期编译失败后其缓存文件会导致二次编译的失败):

> mkdir build
> cd build
> ../configure -prefix /usr/local/qt6.4 # 指定安装路径,注意需要考虑一下权限问题,否则给普通用户指定root的权限路径,会导致后期安装的时候权限不够

这里有个问题,就是在安装完成后,用户目录下有*.prl文件,挺多的。不知道怎么指定放到其他目录下。
在构建过程中,可以看到源码文件是由很多个文件夹构成,比如qtbase文件夹,在qt源码文件中,qt是由多个模块共同组成的(也就是源码文件中的每个目录),如果是要最小安装qt,进入qtbase目录中找到对应的configure文件,执行编译以及安装,即可安装指定模块。
最小安装应该就是只安装qtbase模块即可,这个没有验证。而且这个有问题,如果全部安装的话,编译过程出现的源码与编译文件大小有30G的大小。因此得考虑存储空间的大小。当安装完成后,如果空间不足的话,尽量删除。不过编译过程需要很久,所以必须确定已经安装完成。

构建代码并且安装:

# 构建,这部分需要挺长时间的
cmake --build . --parellel

# 安装到 -prefix目录下
cmake --install .

如果想为Qt Assistant构建文档:
cmake --build . --target docs
cmake --build . --target install_docs
官方文档还提到了设置PATHLD_LIBRARY_PATH以便qt6.4bin里面的工具和lib里面的库文件能被检索到。这个在~/.bashrc里添加就行。

检测是否安装成功,查看安装目录下<qt安装目录>/bin/designer是否运行出界面。
在这里插入图片描述

出现问题

cmake版本太低(不一定有问题)

cmake版本太低了。虽然在ubuntu上使用了apt-get update命令,但是对应的ubuntu远程仓库里的cmake并不是最新版本。可以考虑使用新版本:

wget https://github.com/Kitware/CMake/releases/download/v3.21.2/cmake-3.21.2.tar.gz
tar xf cmake-3.21.2.tar.gz
cd cmake-3.21.2
./configure
make
sudo make install

或者:不删除旧版本的cmake,而是将/usr/bin/cmake建立一个软链接,使用自己新安装的cmake,使用完成后再改回来(也可以直接使用绝对地址直接使用指定的cmake)。下载地址

> wget https://cmake.org/files/v3.26/cmake-3.26.0-rc5.tar.gz

> tar -zxvf cmake-3.26.0-rc5.tar.gz

> cd cmake-3.26.0-rc5

> ./configure --prefix=/usr/local/cmake3.26


> make -j8 # 使用8个线程来编译

> make install

> cd /usr/local/cmake3.26

# 为了保证使用的自己定义的cmake,需要使用软链接,先把旧版本的可执行文件复制一份,方便恢复
> sudo cp /usr/bin/cmake /usr/bin/cmake_old
> sudo ln -sf /usr/local/cmake3.26/bin/cmake  /usr/bin/cmake # 建立软链接

# 查看全局的环境是否改变
> cmake --version

Cmake error :generator: Ninja

这个问题的原因是之前编译过CMakeLists.txt后,产生了缓存文件CMakeCache.txt等,解决方案是删除对应的缓存文件。在编译过程中生成的文件有:CMakeCache.txtCMakeFiles/config.optconfig.summaryconfig.tests/;除此之外,每个单独的模块中也有一些缓存文件,需要删除干净,否则也会报错。

最好的办法就是在编译过程中,创建一个build文件夹,在build文件夹中执行configure(cmake)命令。

Linux系统中安装QTCreator

官网下载地址在qtcreator下载,找到对应的版本文件即可,在每个版本中都会有源码文件(qt-creator-opensource-src-9.0.2.zip,qt-creator-opensource-src-9.0.2.tar.gz)、在线安装软件(.dmg, .run, .exe) 。对于在线安装,也就是基于GUI界面的安装,在Linux中注意给运行权限x即可。这里主要是源码编译安装。

> wget https://download.qt.io/official_releases/qtcreator/9.0/9.0.2/qt-creator-opensource-src-9.0.2.tar.gz

# 解压
> tar -zxvf qt-creator-opensource-src-9.0.2.tar.gz

> cd qt-creator-opensource-src-9.0.2/
> mkdir build
> cd build
> cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/qt-creator
> make # 编译,需要挺久时间的。
> sudo make install # 安装

# 启动找到安装目录/usr/local/qt-creator
> ./bin/qtcreator

运行成功后出现目录:
在这里插入图片描述

为了能够在Terminal中命令行启动QtCreator。可以考虑在/usr/bin目录下创建一个qtcreator脚本文件,内容如下:其中,QT_HOME表示的是QT的安装目录

#!/bin/sh
export QT_HOME=/usr/local/qt-creator/bin
$QT_HOME/qtcreator $*

创建完成后需要给他执行权限:sudo chmod a+x /usr/bin/qtcreator

或者在/usr/bin下建立一个软链接。链接到对应的可执行文件。

# 注意这里的/usr/local/qt-creator/bin/qtcreator是我自己安装qtcreator的目录
sudo ln -sn /usr/local/qt-creator/bin/qtcreator /usr/bin/qtcreator

错误

./qtcreator: error while loading shared libraries: libQt6Core5Compat.so.6: cannot open shared object file: No such file or directory

出现着这种错误的原因是由于之前安装的QTlib库没有加入到环境变量中,因此使用不了
临时解决方案是将QTlib库临时加到环境变量中

# 最好是追加,并且,这个qt目录是自己安装的目录,别弄混了
> export LD_LIBRARY_PATH=/usr/local/qt6.4/lib:$LD_LIBRARY_PATH

为了让上述环境变量一直有用,可以添加到/etc/profile/etc/export~/.bashrc或者~/.bash_profile中。

当然也可以将该目录加入到共享库的配置文件中

# 注意这里的/usr/local/qt6.4是我安装qt的路径
> echo "/usr/local/qt6.4/lib" >> /etc/ld.so.conf
> ldconfig

搜索界面搜索不到qtcreator

为了能够在图形化界面中搜索qtcreator,需要一些配置。

通过源码编译安装解压二进制等形式安装的软件将无法在applications列表中被查找。如果想要达到查找应用这个目的,需要先弄清楚linux是如何管理应用程序的。观察一个特殊的目录:/usr/share/applications/。根据目录的名称可以得到很大的启示,share是共享的,表明这里的设置范围是系统级别的。

QT安装目录中/share/applications中包含了.desktop文件,内容如下:

[Desktop Entry]
Type=Application
Exec=qtcreator %F
Name=Qt Creator
GenericName=C++ IDE for developing Qt applications
X-KDE-StartupNotify=true
Icon=QtProject-qtcreator
StartupWMClass=qtcreator
Terminal=false
Categories=Development;IDE;Qt;
MimeType= text/x-c++src;text/x-c++hdr;text/x-xsrc;application/x-designer;application/vnd.qt.qmakeprofile;application/vnd.qt.xml.resource;

将该desktop文件复制到/usr/share/applications中,并且修改其中内容,如下:

# 用程序启动的指令,可以带上参数运行
Exec=/usr/local/qt-creator/bin/qtcreator %F

# 图标
Icon=/usr/local/qt-creator/share/icons/hicolor/24x24/apps/QtProject-qtcreator.png
  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要在Linux编译Qt源代码,您需要按照以下步骤操作: 1.下载Qt源代码包并解压缩。 2.安装必要的依赖项,如编译器、开发库和工具链。 3.打开终端并进入Qt源代码目录。 4.运行“configure”脚本以配置Qt编译选项。 5.运行“make”命令以编译Qt源代码。 6.运行“make install”命令以安装Qt库和工具。 7.完成后,您可以使用Qt Creator或其他IDE来开发Qt应用程序。 请注意,编译Qt源代码可能需要一些时间和系统资源,具体取决于您的计算机性能和Qt版本。 ### 回答2: 编译 Qt 源代码是 Linux 系统管理员和开发人员的常见任务之一。Qt 是一种跨平台的C++应用程序框架,广泛用于各种图形用户界面(GUI)开发。本文将简要介绍如何在 Linux 系统上编译 Qt 源代码,以下是具体步骤: 1. 安装 Qt 的依赖项:在编译 Qt 源代码之前,需要先安装一些依赖项,比如 gcc、g++、make、libicu-dev、libssl-dev、libsqlite3-dev、libxrender-dev、libfontconfig1-dev、libglib2.0-dev 和 libx11-dev。在 Ubuntu 系统上,可以使用 apt-get 命令安装这些依赖项: ``` sudo apt-get install build-essential libicu-dev libssl-dev libsqlite3-dev libxrender-dev libfontconfig1-dev libglib2.0-dev libx11-dev ``` 2. 下载 Qt 源代码:Qt 的最新源代码可以从官方网站下载(https://www.qt.io/download)。 3. 解压 Qt 源代码:将下载的 Qt 源代码包解压到某个目录。比如解压到 /opt/qt 下: ``` tar -xvf qt-everywhere-src-5.12.0.tar.xz -C /opt/qt ``` 4. 为 Qt 配置选项:在编译 Qt 之前,你需要运行 configure 脚本来为 Qt 配置选项。有些选项需要根据你的需求进行设置,如: - -opensource 表示使用开源版本的 Qt。 - -confirm-license 表示已阅读 Qt 许可证并同意。 - -prefix 表示 Qt 生成的安装目录,可在此选项指定您的 Qt 安装位置。 - -no-opengl 表示关闭 OpenGL 支持。 - -no-gui 表示不编译 Qt GUI 模块。 配置选项可以通过以下命令来设置: ``` ./configure [options] ``` 例如,以下命令将以开源版本编译 Qt,关闭 OpenGL 支持,不编译 Qt GUI 模块: ``` ./configure -opensource -confirm-license -prefix /opt/qt -no-opengl -no-gui ``` 5. 开始编译 Qt:配置选项完成后,可以运行 make 命令来开始编译 Qt编译过程可能需要一些时间,取决于您的系统配置和 Qt 选项。可以使用以下命令来开始编译 Qt: ``` make ``` 6. 安装 Qt: 当编译完成后,可以使用以下命令来安装 Qt: ``` make install ``` 安装完成后,您就可以在指定的安装路径下找到 Qt 库和头文件,并使用它们进行开发。 以上是在 Linux 系统上编译 Qt 源代码的简单步骤,如有任何疑问,请在评论区留言。 ### 回答3: 在Linux平台上编译QT源码是一项很重要的任务。本文将指导您如何在Linux操作系统上编译安装QT源码。 1. 确认您的系统已安装Qt的依赖库 首先,您需要确认系统是否已安装Qt的依赖库,这些库包括但不限于: - build-essential - libfontconfig1-dev - libfreetype6-dev - libx11-dev - libxext-dev - libxfixes-dev - libxi-dev - libxrender-dev - libxcb1-dev - libx11-xcb-dev - libxcb-glx0-dev 如果您没有安装这些依赖库,可以运行以下命令进行安装: sudo apt-get update sudo apt-get install build-essential libfontconfig1-dev libfreetype6-dev libx11-dev libxext-dev libxfixes-dev libxi-dev libxrender-dev libxcb1-dev libx11-xcb-dev libxcb-glx0-dev 2. 下载QT源码 您可以从QT官网上下载最新的QT源码,或者您可以从GitHub上下载QT的稳定版本。在此,我们假设您已经从GitHub上下载了QT5.15.2的源码。 3. 解压源码 将下载的QT源码包解压到您的硬盘中,例如,您可以在/home/user/目录下创建一个名为qt的文件夹,将源码包解压到该文件夹中: cd /home/user mkdir qt cd qt tar -xvzf qt-everywhere-src-5.15.2.tar.gz 4. 配置Qt源码 进入源码文件夹并配置源码。你可以使用如下的命令来为源码配置环境和需要构建的模块: ./configure 此步骤需要一些时间,因为它需要检查系统并配置源代码以构建QT库。可以使用./configure --help查看各种配置项。 5. 编译源码 在成功配置Qt代码之后,您可以使用以下命令编译Qt代码: make 此步骤会对源码进行编译并在系统中安装QT库。这个步骤需要一些时间,取决于您的系统性能。 6. 安装QT库 在编译成功之后,您可以使用以下命令安装Qt库: sudo make install 此命令将Qt库安装到默认的安装目录中(/usr/local/Qt-5.15.2/)。您可以更改默认安装目录使用--prefix 配置项的值。 7. 验证QT库 默认情况下,QT库被安装到/usr/local/Qt-5.15.2/目录中。要验证是否成功安装了QT库,请打开终端并键入以下命令: ls /usr/local/Qt-5.15.2/ 此命令应该显示已安装的库的文件和子目录。 结论 在本文中,我们介绍了如何在Linux操作系统上编译安装QT源码。这些步骤是必要的,以便您可以在Linux上创建QT应用程序,进行开发和测试。我们希望这篇指南对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值