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

标签 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\的哪个子文件夹(任何位置)。

最佳答案

find_package 搜索顺序如下:

  1. 缓存变量中搜索: CMAKE_PREFIX_PATH , CMAKE_FRAMEWORK_PATH , CMAKE_APPBUNDLE_PATH
  2. 环境变量中搜索:<package>_DIR , CMAKE_PREFIX_PATH , CMAKE_FRAMEWORK_PATH , CMAKE_APPBUNDLE_PATH .
  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 版本是 PATH 中第一个找到的版本。环境变量,例如,对于 Windows C:\Qt\Qt5.10.1\5.10.1\msvc2017_64

关于qt - 如何在 Windows 上使用 cmake find_package 设置 qt5 路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50764721/

相关文章:

c++ - 在qt中从https读取Json

Qt Installer,覆盖之前的版本

c++ - 将类函数连接到按钮。(QT C++)

c - 使用 CMake 链接到 pthread 库(在 CLion 中)

c++ - 如何为具有多个模块(包括单元测试等)的项目设置 cmake

c++ - CMake 图形用户界面 : Specify library path for Windows

c++ - 如何从 QStringList 中删除空字符串和空字符串?

c++ - 将 Qt 项目文件迁移到 CMake

c++ - CMake、Exe找不到DLL

macOS 上使用 Ninja 的 CMake GUI