C++ QT不工作未定义CMAKE_前缀_路径,您可能需要在CMakeLists.txt:20(查找_包)设置它,CMAKE错误:

C++ QT不工作未定义CMAKE_前缀_路径,您可能需要在CMakeLists.txt:20(查找_包)设置它,CMAKE错误:,c++,qt,cmake,C++,Qt,Cmake,我需要在大学作业中使用qt,但我的qt不工作,我已经重新安装了我的mingw编译器,当我创建一个新的qt控制台可执行项目时,qt向我显示了一系列错误 这是编写的代码: #include <QCoreApplication> #include <QDebug> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); qDebug() << "Hello Wo

我需要在大学作业中使用qt,但我的qt不工作,我已经重新安装了我的mingw编译器,当我创建一个新的qt控制台可执行项目时,qt向我显示了一系列错误 这是编写的代码:

#include <QCoreApplication>
#include <QDebug>

int main(int argc, char *argv[]) {
    QCoreApplication a(argc, argv);
    qDebug() << "Hello World";
    return QCoreApplication::exec();
}

我真的不明白我该怎么做,控制台给了我什么:(

你是说我的盒子(运行Windows)上的
CMAKE_模块_路径
而不是
CMAKE_前缀_路径
),我设置了一个环境变量
CMAKE_PREFIX_PATH
来解决这个问题。我在谷歌上搜索了一次,已经忘记了如何找到正确的路径。但是,在我的例子中,它是
D:/Qt/5.15.1/msvc2019_64/lib/CMAKE
。它包含所有Qt模块的子目录,而这些子目录又只包含
。CMAKE
文件。您可以em也在Windows上,但可能使用另一个平台。因此,请检查
msvc2019_64
,并将其替换为适合您安装的相应平台目录。我刚刚用资源管理器查看了
D:/Qt/5.15.1
,发现了各种版本。但可能使用另一个平台。很抱歉,您是这样做的。您在一开始就提到了您正在使用mingw。但是,我在我这边看到了
D:/Qt/5.15.1/mingw81_32
D:/Qt/5.15.1/mingw81_64
。因此,(假设是完整的Qt安装)您的计算机上也应该有类似的东西。

cmake_minimum_required(VERSION 3.19)
project(qttest3)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)

set(QT_VERSION 5)
set(REQUIRED_LIBS Core)
set(REQUIRED_LIBS_QUALIFIED Qt5::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 ()

CMake Warning at CMakeLists.txt:16 (message):
  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)


CMake Error at CMakeLists.txt:20 (find_package):
  By not providing "FindQt5.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "Qt5", but
  CMake did not find one.

  Could not find a package configuration file provided by "Qt5" with any of
  the following names:

    Qt5Config.cmake
    qt5-config.cmake

  Add the installation prefix of "Qt5" to CMAKE_PREFIX_PATH or set "Qt5_DIR"
  to a directory containing one of the above files.  If "Qt5" provides a
  separate development package or SDK, be sure it has been installed.


-- Configuring incomplete, errors occurred!
See also "D:/C Problems/qttest3/cmake-build-debug/CMakeFiles/CMakeOutput.log".