如何在 Windows 上使用 cmake find_package 设置 qt5 路径?
How to set qt5 path with cmake find_package on Windows?
我是这样添加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\ 的哪个子文件夹(任何位置)。
您可以在 CMake Gui 中设置单击 Add Entry
按钮并添加一个名为 Qt5_DIR
的新变量,select 其类型为 PATH
,其值类似于C:\Qt.11.0\msvc2017_64\lib\cmake\Qt5
其中 5.11.0
是 Qt 版本。此文件夹必须包含 CMake 正确设置所需的 Qt5Config.cmake
。
我的解决方法是将所需的 QT 放在 PATH 变量的顶部。如果你想让 CMAKE 找到它,它必须在 PATH 中。
find_package
搜索顺序如下:
- 在缓存变量中搜索:
CMAKE_PREFIX_PATH
、CMAKE_FRAMEWORK_PATH
、CMAKE_APPBUNDLE_PATH
- 在环境变量中搜索:
<package>_DIR
、CMAKE_PREFIX_PATH
、CMAKE_FRAMEWORK_PATH
、CMAKE_APPBUNDLE_PATH
.
- 在
HINTS
选项中搜索。
- 搜索
PATH
环境变量。
- 还有更多 "desperate" 个地方。更多关于 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
环境变量中找到的版本,例如 windows C:\Qt\Qt5.10.1.10.1\msvc2017_64
我是这样添加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\ 的哪个子文件夹(任何位置)。
您可以在 CMake Gui 中设置单击 Add Entry
按钮并添加一个名为 Qt5_DIR
的新变量,select 其类型为 PATH
,其值类似于C:\Qt.11.0\msvc2017_64\lib\cmake\Qt5
其中 5.11.0
是 Qt 版本。此文件夹必须包含 CMake 正确设置所需的 Qt5Config.cmake
。
我的解决方法是将所需的 QT 放在 PATH 变量的顶部。如果你想让 CMAKE 找到它,它必须在 PATH 中。
find_package
搜索顺序如下:
- 在缓存变量中搜索:
CMAKE_PREFIX_PATH
、CMAKE_FRAMEWORK_PATH
、CMAKE_APPBUNDLE_PATH
- 在环境变量中搜索:
<package>_DIR
、CMAKE_PREFIX_PATH
、CMAKE_FRAMEWORK_PATH
、CMAKE_APPBUNDLE_PATH
. - 在
HINTS
选项中搜索。 - 搜索
PATH
环境变量。 - 还有更多 "desperate" 个地方。更多关于 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.10.1\msvc2017_64