cmake 找不到 Qt4

问题描述 投票:0回答:5

自从4.8.0出来后,我重新安装了Qt,现在我也想使用cmake。为了使cmake工作,我记得必须将mingw bin文件夹(

QtSDK\Desktop\Qt\4.7.3
)添加到Qt4.7.3中的PATH中,所以我猜测现在
QtSDK\Desktop\Qt\4.8.0
中会有一个类似的文件夹,但事实并非如此。我的问题是,其他人有设置 Qt 和 cmake 的经验吗?我现在可以使用一些帮助,因为我已经用谷歌搜索了一下,但无法找到任何使 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)
qt cmake
5个回答
8
投票

你只需要在

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

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

  1. 查看/创建项目源文件夹
  2. 在项目文件夹外创建构建文件夹
  3. 启动 Qt 命令提示符 /
    cmd
    cd
    进入构建文件夹,例如
    cd build\project
  4. 运行 cmake 或 cmake-gui 将路径传递到源文件夹,例如
    cmake-gui ..\..\source\project
  5. 设置任意变量,例如
    QT_QMAKE_EXECUTABLE
    CMAKE_BUILD_TYPE
  6. 运行构建工具,或运行
    cmake --build .

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
投票

刚刚遇到了同样的问题...看看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} 变量。祝你好运。


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 解决了我的问题。


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
中。希望这也有帮助。

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