【问题标题】:Qt version in centos7centos7中的Qt版本
【发布时间】:2017-09-28 16:46:26
【问题描述】:

我正在使用 centos 7。要检查安装的 qt 版本,我正在使用返回的命令 qmake --version

Qmake version: 1.07a (Qt 3.3.8b).
Qmake is free software from Trolltech ASA.

但是,当我发出命令 yum install qt 时,我收到了消息

Package 1:qt-4.8.5-13.el7.x86_64 already installed and latest version.
Nothing to do.

我不确定我的系统中安装了哪个版本的 qt!我需要一个 qt 版本 > 4.7。

【问题讨论】:

  • 您可能有多个版本。也许您路径上的qmake 是指向特定版本的符号链接。可能有一种适当的方法来设置不同的方法。不过我对 Qt 了解不多,所以我不能确定。
  • 它说 qt-4.8.5-13.el7.x86_64 已安装。我假设那是 v4.8.5。

标签: c++ qt centos7 qmake


【解决方案1】:

您应该检查安装了哪些 Qt 软件包: # yum list qt*

这将为您提供系统上实际安装的 Qt 软件包列表(以及可安装的软件包)。确保您没有安装任何较旧的 qt 软件包。

@tambre 是对的,qt-4.8.5-13.el7.x86_64 是 Qt 4.8.5。

您也可以使用:$ whereis qmake 获取通过 $PATH 访问的 qmake 的位置(很可能是 /usr/bin/qmake)。

然后,检查你的包实际安装的qmake是否与之前的结果匹配:# rpm -ql qt


您将 CentOS 用作工作站(带 GUI)还是服务器(不带 GUI)?

因为如果在前面的步骤之后,您仍然得到错误的 qmake,并且您正在使用 QtCreator,您可以在 QtCreator 中手动设置一个新的“Qt 版本”,链接到您想要的 qmake (v4.8.5)。

为此,请转到 QtCreator > 工具 > 选项...;然后构建 & 运行 > Qt 版本选项卡。 检查您要查找的 Qt 版本是否已被自动检测到。如果不, 选择左侧的“添加”,然后导航到所需版本的 qmake。

现在检查您添加的 Qt 版本是否存在套件(在“套件”选项卡中),如果不存在,请添加一个链接到所需 Qt 版本、所需设备类型等的新套件。

然后您可以使用此工具包配置现有项目并使用它进行构建。为此,请进入 QtCreator 中的 Projects 选项卡 (Ctrl+5),然后为您的项目选择所需的工具包。

D

【讨论】:

  • 我正在使用 CentOS 作为工作站。命令 `yum list qt*` 返回“错误:没有要列出的匹配包”,whereis qmake 给出“qmake: /usr/lib64/qt-3.3 /bin/qmake" 和rpm -ql qt 给出了qt-4.8.5的几个包的列表
  • 好的。哪些软件包用rpm -ql qt 标记为已安装?显然你已经安装了 qt-3.3。如果您不需要它,我建议将其删除以避免干扰 qt-4.8。
  • "/usr/bin/qdbus /usr/lib64/libQtCore.so.4 /usr/lib64/libQtCore.so.4.8 /usr/lib64/libQtCore.so.4.8.5 /usr/ lib64/libQtDBus.so.4 /usr/lib64/libQtDBus.so.4.8 /usr/lib64/libQtDBus.so.4.8.5 /usr/lib64/libQtNetwork.so.4 /usr/lib64/libQtNetwork.so.4.8 / usr/lib64/libQtNetwork.so.4.8.5" ...等等。我需要更改qmake的路径吗?我的意思是我想要whereis qmake命令应该返回qt4目录而不是qt3.3。如何更改那个?
  • 检查响应。我刚刚添加了更多信息以在 Qt Creator 中设置额外的 Qt 版本
  • 删除 qt3 后,我将文件 .bash_profile 编辑为 export QTDIR=/usr/local/Trolltech/Qt-4.8.2 export PATH=$QTDIR/bin:$PATH,现在它可以正常工作了。
【解决方案2】:

Qt 旨在支持多个并行安装。我的系统上通常有几十个 - 多个版本、目标、配置。

您可以选择代表您希望使用的 Qt 安装的 qmake 版本。 qmake 二进制文件和 Qt 安装之间存在 1:1 映射。

要查找系统上的所有 qmake 二进制文件,您可以例如$ locate qmake | grep bin

PATH 中的qmake 版本一般来说是无关紧要的,因为对于任何给定项目,您只需直接调用一次qmake - 您可以通过提供@ 的完整路径来实现987654328@ 在您在构建中使用的 Qt 安装中。随后的调用通过make qmake_all 完成。我个人觉得在PATH 中根本不需要qmake - 太容易误操作了。

回顾一下,对于任何给定的项目,你会这样做:

set CPUS=$(grep -c ^processor /proc/cpuinfo)
mkdir build-projectFoo
cd build-projectFoo
/path/to/Qt/bin/qmake ../projectFoo-src
# no need to call qmake directly from this point onwards
make -j$CPUS
... (modifications to sources, project files, etc.)
make qmake_all && make -j$CPUS

【讨论】:

  • @AMB 然后你需要在你的系统上安装它。它通常预先安装在最小的安装中,但也许在您的系统上它不是。你有什么发行版?在 CentOS 上,您可以通过 yum install slocatesudo you install slocate 安装它,具体取决于您使用的是 root 用户还是更安全的 sudo。
【解决方案3】:

我将文件 .bash_profile 编辑为 export QTDIR=/usr/local/Trolltech/Qt-4.8.2 export PATH=$QTDIR/bin:$PATH 删除 qt3 后,现在可以正常工作了。

【讨论】:

    猜你喜欢
    • 2022-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 2014-11-05
    相关资源
    最近更新 更多