cmake没有找到Qt4

时间:2012-03-29 21:38:22

标签: qt compiler-construction cmake

由于4.8.0已经出来,我重新安装了Qt,现在我也想使用cmake。为了使cmake工作,我记得我必须在Qt4.7.3中将mingw bin文件夹(QtSDK\Desktop\Qt\4.7.3)添加回PATH,所以我猜想现在QtSDK\Desktop\Qt\4.8.0中会有一个类似的文件夹,但这不是案子。我的问题是,有没有其他人有设置Qt和cmake的经验?我现在可以使用一些帮助,因为我已经google了一下,无法找到任何方法让cmake工作。

在尝试构建时,我得到了这条众所周知的消息:

CMake Error at C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:91 (MESSAGE):
  Could NOT find Qt4 (missing: QT_QMAKE_EXECUTABLE QT_INCLUDE_DIR)
Call Stack (most recent call first):
  C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:252 (_FPHSA_FAILURE_MESSAGE)
  C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindQt4.cmake:1171 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  CMakeLists.txt:3 (find_package)

5 个答案:

答案 0 :(得分:8)

你只需要在QT_QMAKE_EXECUTABLE中设置qmake的路径,然后cmake就可以使用qmake -query找到它需要的所有其他路径(类似于Linux上的pkg-config)。

使用Qt和CMake构建项目的步骤通常是:

  1. 签出/创建项目源文件夹
  2. 在项目文件夹外创建构建文件夹
  3. 启动Qt命令提示符/ cmdcd到构建文件夹,例如cd build\project
  4. 运行cmake或cmake-gui将路径传递给源文件夹,例如cmake-gui ..\..\source\project
  5. 设置任何变量,例如QT_QMAKE_EXECUTABLECMAKE_BUILD_TYPE
  6. 运行您的构建工具,或运行cmake --build .

答案 1 :(得分:5)

所以,我发现了什么问题,我想我以前应该知道。我只是将C:\QtSDK\Desktop\Qt\4.8.0\msvc2010\bin添加到我的PATH变量中。值得注意的是,在默认的4.8.0安装中,qmake位于C:\QtSDK\Desktop\Qt\4.8.0\msvc2010\bin而不是4.7.3中的C:\QtSDK\Desktop\Qt\4.7.3\mingw\bin。注意区别; msvc2010 vs mingw。它实际上非常明显,因为msvc2010是该目录中唯一的文件夹。

我没有尝试过skyhisi的答案,因为它不再需要,但我猜这是让cmake工作的另一种正确(如果不是更好)的方法。

答案 2 :(得分:2)

刚遇到同样的问题......看看findQt4.cmake

FIND_PROGRAM(QT_QMAKE_EXECUTABLE NAMES qmake qmake4 qmake-qt4 qmake-mac PATHS
   "[HKEY_CURRENT_USER\\Software\\Trolltech\\Qt3Versions\\4.0.0;InstallDir]/bin"
   "[HKEY_CURRENT_USER\\Software\\Trolltech\\Versions\\4.0.0;InstallDir]/bin"
   "[HKEY_CURRENT_USER\\Software\\Trolltech\\Versions\\${qt_install_version};InstallDir]/bin"
   $ENV{QTDIR}/bin
   DOC "The qmake executable for the Qt installation to use")

您可以更改注册表项,或者,我个人更喜欢完全删除所有这些键并修改$ ENV {QTDIR}变量。祝你好运。

答案 3 :(得分:2)

我遇到这个问题的原因略有不同。也许这会帮助别人:

我卸载了Qt 4.8.3,然后安装了qt 4.8.4。根据Slava的回答,我发现CMake从$(qt_install_version}获得了价值:

[HKEY_CURRENT_USER\\Software\\Trolltech\\Versions\\DefaultVersion]

即使所有其他注册表项都更新为4.8.4,仍然设置为4.8.3。将DefaultVersion键的值更改为4.8.4可以解决我的问题。

答案 4 :(得分:0)

我有同样的问题,我解决了提供qmake的路径,

 QT_QMAKE_EXECUTABLE   /opt/qt-4.8.7/bin/qmake

在Mac上,二进制文件保存在/usr/local/Trolltech/Qt-4.8.7/bin中 对于我的操作系统,QT_QMAKE_EXECUTABLE的值所需的qmake是存储在路径/opt/qt-4.8.7/bin/qmake中的。希望这也有帮助。