CMake不知道Qt4 qmake在哪里

问题描述 投票:22回答:8

我正在使用Debian OS,我试图指向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
8个回答
21
投票

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


8
投票

我解决了我的问题。

使用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。


7
投票

根据我的经验,通过将包含qmake的文件夹放在PATH环境变量中,可以最轻松地解决此问题。


3
投票

这是答案

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

1
投票

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

qtchooser -install <arbitrary_name> <path_to_qmake>

在我的情况下,我只是提供“默认”作为任意名称...这在适当的位置创建了default.conf文件,一切都很好。我不认为你有多少个命名版本的qt是有限制的。如果以root用户身份执行此操作,则应该适用于所有用户。


0
投票

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


0
投票

在我的旧RHEL发行版中,这对我来说:

sudo yum install qt-devel.x86_64

只有qt-base不适用于cmake。


0
投票

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

  $: locate qtchooser | grep conf

2)从conf文件列表中,可能有一个调用“default.conf”这个是一个链接到其他一个(4.conf或qt4.conf或5.conf或qt5.conf)。选择一个对你有意义的,并创建一个链接。

假设您的默认文件路径是

/US人/礼拜/小86_64-Linux-弓弩/其他-default/其他chooser/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

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

创建备份:

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

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

  $ sudo vi qt5.conf

现在应该这样做。

© www.soinside.com 2019 - 2024. All rights reserved.