如何在Windows上使用cmake find_package设置qt5路径?

Ste*_*nko 3 qt cmake cmake-gui

我这样添加QT:

find_package(Qt5 COMPONENTS Core Quick REQUIRED)
...
target_link_libraries(${PROJECT_NAME} Qt5::Core Qt5::Quick ${OpenCV_LIBS})
Run Code Online (Sandbox Code Playgroud)

但是cmake发现了一些python工件而不是预期的C:\ QT ...

在此处输入图片说明

我该如何更改?试图找到一些示例,但没有找到任何明确的指令,我应该在C:\ QT \的哪个子文件夹中指定(任何位置)。

小智 5

您可以设置单击Add EntryCMake Gui 中的按钮并添加一个名为 的新变量Qt5_DIR,选择其类型为,PATH并将其值选择为Qt 版本C:\Qt\5.11.0\msvc2017_64\lib\cmake\Qt5在哪里5.11.0。此文件夹必须包含Qt5Config.cmakeCMake 需要正确设置的内容。


tei*_*vaz 5

find_package 搜索顺序如下:

  1. 搜索在缓存变量CMAKE_PREFIX_PATHCMAKE_FRAMEWORK_PATHCMAKE_APPBUNDLE_PATH
  2. 搜索在环境变量<package>_DIRCMAKE_PREFIX_PATHCMAKE_FRAMEWORK_PATHCMAKE_APPBUNDLE_PATH
  3. 搜索HINTS选项。
  4. 搜索PATH环境变量。
  5. 在更多“绝望”的地方。更多关于这里

考虑到这一点,有几种方法可以为QT提供合适的版本:

  1. 使环境变量指向正确的QT版本(例如QTDIR)。并在CMake文件中使用它:
    • 喜欢 set(CMAKE_PREFIX_PATH "$ENV{QTDIR}")
    • 要么 find_package(Qt5 HINTS "$ENV{QTDIR}" COMPONENTS Core Quick REQUIRED)
  2. 有一个明确命名为Qt5_DIR指向QT正确版本的环境变量。然后,无需对CMake文件进行任何其他更改。
  3. 确保所需的Qt版本是在PATH环境变量中找到的第一个版本,例如,对于WindowsC:\Qt\Qt5.10.1\5.10.1\msvc2017_64


Ste*_*nko 2

我的解决方法是将所需的 QT 放在 PATH 变量的顶部。如果您希望 CMAKE 找到它,它必须位于 PATH 中。