代码之家  ›  专栏  ›  技术社区  ›  Stepan Yakovenko

如何在windows上使用cmake find_包设置qt5路径?

  •  1
  • Stepan Yakovenko  · 技术社区  · 6 年前

    我这样添加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\i的哪个子文件夹(任何位置)。

    3 回复  |  直到 6 年前
        1
  •  5
  •   zwcloud    5 年前

    find_package 搜索顺序如下:

    1. 在搜索 缓存变量 : CMAKE_PREFIX_PATH , CMAKE_FRAMEWORK_PATH , CMAKE_APPBUNDLE_PATH
    2. 在搜索 环境变量 : <package>_DIR , cmake_前缀路径 , cmake_框架路径 , cmake_appbundle_路径 .
    3. 在中搜索 HINTS 选择权。
    4. 搜索 PATH 环境变量。
    5. 在一些更“绝望”的地方。关于这个的更多信息 here .

    考虑到这一点,有几种方法可以为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是在 路径 环境变量,例如,对于Windows C:\Qt\Qt5.10.1\5.10.1\msvc2017_64
        2
  •  3
  •   user6764549    6 年前

    您可以设置单击 Add Entry 按钮,并添加一个名为 Qt5_DIR ,选择其类型为 PATH 它的价值 C:\Qt\5.11.0\msvc2017_64\lib\cmake\Qt5 哪里 5.11.0 是qt版本。此文件夹必须包含 Qt5Config.cmake CMAKE需要正确设置。

        3
  •  0
  •   Stepan Yakovenko    6 年前

    我的工作是把期望的Qt放到路径变量的顶部。如果你想让cmake找到它,它必须在路径上。