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

时间:2018-06-08 16:18:01

标签: qt cmake cmake-gui

我正在添加QT:

find_package(Qt5 COMPONENTS Core Quick REQUIRED)
...
target_link_libraries(${PROJECT_NAME} Qt5::Core Qt5::Quick ${OpenCV_LIBS})

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

enter image description here

我该怎么改变?试图找到一些例子,但没有找到任何明确的指令,哪个子文件夹的C:\ QT \我应该指定(任何地方)。

3 个答案:

答案 0 :(得分:4)

find_package搜索顺序如下:

  1. 缓存变量中搜索CMAKE_PREFIX_PATHCMAKE_FRAMEWORK_PATHCMAKE_APPBUNDLE_PATH
  2. 环境变量中搜索:<package>_DIRCMAKE_PREFIX_PATHCMAKE_FRAMEWORK_PATHCMAKE_APPBUNDLE_PATH
  3. HINTS选项中搜索。
  4. 搜索PATH环境变量。
  5. 还有更多&#34;绝望的&#34;地方。关于here的更多信息。
  6. 考虑到这一点,有几种方法可以为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. 确保在PATH环境变量中找到所需的Qt版本。

答案 1 :(得分:2)

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

答案 2 :(得分:0)

我的解决方法是将所需的QT放到PATH变量的顶部。如果你想让CMAKE找到它,它必须在PATH中。