【问题标题】:CMake doesn't know where is Qt4 qmakeCMake 不知道 Qt4 qmake 在哪里
【发布时间】:2014-04-02 13:00:40
【问题描述】:

我正在使用 Debian 操作系统,我试图指出 cmake 我的 Qt4 在哪里。

我尝试构建 qjson 库及其 CMakeLists.txt: http://pastebin.com/fKNp0Qgy

我明白了:

Qt5 not found, searching for Qt4
qmake: could not exec '/usr/lib/x86_64-linux-gnu/qt4/bin/qmake': No such file or directory
CMake Error at /usr/share/cmake-2.8/Modules/FindQt4.cmake:1386 (message):
  Found unsuitable Qt version "" from NOTFOUND, this code requires Qt 4.x
Call Stack (most recent call first):
  CMakeLists.txt:55 (FIND_PACKAGE)


-- Configuring incomplete, errors occurred!

我不熟悉 CMake 和 Qt 配置,但我很好奇是什么设置强制 CMake FIND_PACKAGE 为 qmake 查看“/usr/lib/x86_64-linux-gnu/qt4/bin/qmake”。 我已经从源代码安装了 Qt 4.8.5,并且我在完全不同的目录中有 Qt4 bin 文件夹。

【问题讨论】:

    标签: linux qt cmake


    【解决方案1】:

    只需尝试“sudo apt-get install qt-sdk”它对我有用

    【讨论】:

    • 在 Ubuntu 14.04 上不是解决方案。
    • 2020 年测试:apt-get install qt4-default
    • qt-sdk 包不再存在。我们应该安装libqt4-dev
    【解决方案2】:

    我解决了我的问题。

    使用grep 命令查找QT_SELECT 我发现QT_SELECT 与/usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf 文件有关。从“默认”文件名中,我假设它被视为 QT_SELECT。以qtchooser -l 显示的其他配置位于/usr/share/qtchooser//usr/lib/x86_64-linux-gnu/qtchooser 目录中。

    这样的配置文件有两行路径。我只是更改了这些行,首先指向我的 Qt bin 目录,然后指向我的 Qt lib 目录。然后我可以看到qtchooser -print-env 在我的Qt 中显示QTTOOLDIRQTLIBDIR

    然后我可以很容易地用 CMake 构建 qjson 库,Qt4 被正确找到。

    【讨论】:

    • 太棒了。这适用于带有 Qt4 的 Ubuntu 16.04。请注意,这些配置文件虽然看似分散在/usr/share/.../usr/lib/... 之间,但除了一个之外,其他所有文件都是/usr/share/qtchooser/qt4-x86_64-linux-gnu.conf 中实际配置的符号链接。所以只需要在那里改变。
    【解决方案3】:

    根据我的经验,通过将包含 qmake 的文件夹放入 PATH 环境变量中,最容易解决此问题。

    【讨论】:

    • 当我将此文件夹添加到 PATH 时,它仍然需要这个 '/usr/lib/x86_64-linux-gnu/qt4/bin/qmake',而不是我的 '/home/daniel/Programy/qt-无处不在-opensource-src-4.8.5/bin/qmake'
    • 也许有用的信息是我的系统中存在目录'/usr/lib/x86_64-linux-gnu/qt4/bin',但只有'qdbus'文件。
    • 好的。我看到有一个工具'qtconfig'。它告诉我 $ qtchooser -print-env QT_SELECT="default" QTTOOLDIR="/usr/lib/x86_64-linux-gnu/qt4/bin" QTLIBDIR="/usr/lib/x86_64-linux-gnu" 我必须弄清楚找出如何指向我的 qt 版本。
    • 我的经验实际上是 Qt5 - 也许 CMake 对待 Qt4 的方式不同?
    【解决方案4】:

    这里是答案

    https://askubuntu.com/questions/540746/ubuntu-14-04-qt5-development-libraries/540757#540757

    好像

    apt-file search Qt5CoreConfig.cmake 是我所缺少的。这让我:

    qtbase5-dev: /usr/lib/x86_64-linux-gnu/cmake/Qt5Core/Qt5CoreConfig.cmake
    

    安装似乎会导致 CMake 找到 Qt5。 qmake 在直接调用时仍然报告相同的问题...似乎仍然安装了一些来自 qt4 的残余...

    至于qmake的问题,通过以下方式解决:

    sudo apt-get install qt5-default
    

    【讨论】:

      【解决方案5】:

      就我而言,只是 qtchooser 缺少“默认”配置。 我认为 cmake 只是执行 qtchooser 并寻找“默认”配置文件名。 您可以通过执行以下操作来安装任何配置文件:

      qtchooser -install <arbitrary_name> <path_to_qmake>
      

      在我的例子中,我只是提供了“default”作为任意名称......这在适当的位置创建了 default.conf 文件,一切都很好。我认为您拥有的 qt 命名版本的数量没有限制。 如果您以 root 身份执行此操作,它应该适用于所有用户。

      【讨论】:

        【解决方案6】:

        在我的旧 RHEL 发行版上,这是为我做的:

        sudo yum install qt-devel.x86_64
        

        只有 qt-base 不能与 cmake 一起使用。

        【讨论】:

          【解决方案7】:

          1) 你的 qtchooser 配置文件在哪里?

            $: locate qtchooser | grep conf
          

          2) 从conf文件列表中,可能有一个调用“default.conf” 此链接是指向其他链接之一(4.conf 或 qt4.conf 或 5.conf 或 qt5.conf)。 选择一个你也觉得有意义的,然后创建一个链接。

          假设你的默认文件路径是

          /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf

          创建备份:

            $: cd $(dirname /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf)
            $: cp -av default.conf default.conf_backup
          

          假设您的目标是 /usr/lib/x86_64-linux-gnu/qtchooser/qt5.conf

          然后:

            $: sudo ln -s /usr/lib/x86_64-linux-gnu/qtchooser/qt5.conf default.conf
          

          3) 你的 qmake 的路径对吗?

          检查 qmake 位置

            $: locate qmake | grep bin
          

          是否与您修改后的 qtchooser/default.conf 中显示的相同?

            $: cat /usr/lib/x86_64-linux-gnu/qtchooser/qt5.conf
          

          如果答案是肯定的,那么你就完成了。 如果 anser 为 no,则需要修改文件:

          创建备份:

            $: cd $(dirname /usr/lib/x86_64-linux-gnu/qtchooser/qt5.conf)
            $: cp -av qt5.conf qt5.conf_backup
          

          编辑文件并更改您的 qmake 位置的路径

            $ sudo vi qt5.conf
          

          现在应该完成了。

          【讨论】:

            【解决方案8】:

            最简单的解决方案是在 gem 期望找到它的目录中添加一个链接。在 Ubuntu 14.04 上,它 qmake 位于 /usr/bin 中。简单的解决方案。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2018-09-09
              • 2013-05-25
              • 1970-01-01
              • 2021-07-13
              • 2014-05-14
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多