C++ QT不工作未定义CMAKE_前缀_路径,您可能需要在CMakeLists.txt:20(查找_包)设置它,CMAKE错误:
我需要在大学作业中使用qt,但我的qt不工作,我已经重新安装了我的mingw编译器,当我创建一个新的qt控制台可执行项目时,qt向我显示了一系列错误 这是编写的代码: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
#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".