问题描述
我正在尝试将 Qt 6.0.2 与 CLion 一起使用.我收到一个奇怪的错误,指出:CMakeLists.txt:20 (find_package) 处的 CMake 错误:找不到包Qt6"的配置文件那是兼容的具有请求的版本".好像没有填写要求的版本,但我不知道在哪里填写要求的版本.+
I am trying to use Qt 6.0.2 with CLion. I get a strange error that states: "CMake Error at CMakeLists.txt:20 (find_package):Could not find a configuration file for package "Qt6" that is compatiblewith requested version ""." It seems like the requested version is not filled in but I do not know where to fill in the requested version.+
这是我的 CMakeLists.txt 文件的代码:
This is my code for my CMakeLists.txt file:
cmake_minimum_required(VERSION 3.17)
project(jerseytraffic)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)
set(QT_VERSION 6)
set(REQUIRED_LIBS Core)
set(REQUIRED_LIBS_QUALIFIED Qt6::Core)
add_executable(${PROJECT_NAME} main.cpp)
if (NOT CMAKE_PREFIX_PATH)
message(WARNING "CMAKE_PREFIX_PATH is not defined, you may need to set it "
"(-DCMAKE_PREFIX_PATH=\"path/to/Qt/lib/cmake\" or -DCMAKE_PREFIX_PATH=/usr/include/{host}/qt{version}/ on Ubuntu)")
endif ()
find_package(Qt${QT_VERSION} COMPONENTS ${REQUIRED_LIBS} REQUIRED)
target_link_libraries(${PROJECT_NAME} ${REQUIRED_LIBS_QUALIFIED})
if (WIN32)
set(DEBUG_SUFFIX)
if (CMAKE_BUILD_TYPE MATCHES "Debug")
set(DEBUG_SUFFIX "d")
endif ()
set(QT_INSTALL_PATH "${CMAKE_PREFIX_PATH}")
if (NOT EXISTS "${QT_INSTALL_PATH}/bin")
set(QT_INSTALL_PATH "${QT_INSTALL_PATH}/..")
if (NOT EXISTS "${QT_INSTALL_PATH}/bin")
set(QT_INSTALL_PATH "${QT_INSTALL_PATH}/..")
endif ()
endif ()
if (EXISTS "${QT_INSTALL_PATH}/plugins/platforms/qwindows${DEBUG_SUFFIX}.dll")
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E make_directory
"$<TARGET_FILE_DIR:${PROJECT_NAME}>/plugins/platforms/")
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy
"${QT_INSTALL_PATH}/plugins/platforms/qwindows${DEBUG_SUFFIX}.dll"
"$<TARGET_FILE_DIR:${PROJECT_NAME}>/plugins/platforms/")
endif ()
foreach (QT_LIB ${REQUIRED_LIBS})
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy
"${QT_INSTALL_PATH}/bin/Qt${QT_VERSION}${QT_LIB}${DEBUG_SUFFIX}.dll"
"$<TARGET_FILE_DIR:${PROJECT_NAME}>")
endforeach (QT_LIB)
endif ()
这是工具链中MinGW配置的图片
Here is a picture of the MinGW configuration in Toolchains
推荐答案
来自 Qt 6 文档:
要使 find_package 成功,CMake 必须找到 Qt 安装.您可以通过不同的方式向 CMake 介绍 Qt:
- 设置 CMAKE_PREFIX_PATH 环境变量以包含 Qt 6 安装前缀.
- 设置 CMake 缓存变量 CMAKE_PREFIX_PATH 以包含 Qt 6 安装前缀.
例如需要如下代码:
set(CMAKE_PREFIX_PATH "D:/SDK/Qt/6.0.1/msvc2019_64/lib/cmake/")
这篇关于CLion:找不到包“Qt6"的配置文件与请求的版本“"兼容的的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!