我像这样添加QT:
find_package(Qt5 COMPONENTS Core Quick REQUIRED)
...
target_link_libraries(${PROJECT_NAME} Qt5::Core Qt5::Quick ${OpenCV_LIBS})
但是 cmake 发现了一些 python 工件,而不是预期的 C:\QT...
我该如何改变这个?尝试找到一些示例,但没有找到任何明确的说明,我应该指定 C:\QT\的哪个子文件夹(任何位置)。
最佳答案
find_package
搜索顺序如下:
- 在缓存变量中搜索:
CMAKE_PREFIX_PATH
,CMAKE_FRAMEWORK_PATH
,CMAKE_APPBUNDLE_PATH
- 在环境变量中搜索:
<package>_DIR
,CMAKE_PREFIX_PATH
,CMAKE_FRAMEWORK_PATH
,CMAKE_APPBUNDLE_PATH
. - 搜索
HINTS
选项。 - 搜索
PATH
环境变量。 - 还有一些更“绝望”的地方。更多关于here .
考虑到这一点,有几种方法可以为 QT 提供正确的版本:
- 有一个环境变量指向正确的 QT 版本(例如
QTDIR
)。并在 CMake 文件中使用它:- 喜欢
set(CMAKE_PREFIX_PATH "$ENV{QTDIR}")
- 或
find_package(Qt5 HINTS "$ENV{QTDIR}" COMPONENTS Core Quick REQUIRED)
- 喜欢
- 有一个显式命名为
Qt5_DIR
的环境变量指向正确的 QT 版本。然后不需要对 CMake 文件进行任何其他更改。 - 确保所需的 Qt 版本是
PATH
中第一个找到的版本。环境变量,例如,对于 WindowsC:\Qt\Qt5.10.1\5.10.1\msvc2017_64
关于qt - 如何在 Windows 上使用 cmake find_package 设置 qt5 路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50764721/