我目前正在尝试使用CMake构建项目。 这是我得到的输出
CMake Warning at ext/quazip/CMakeLists.txt:4 (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.
CMake Error at ext/quazip/CMakeLists.txt:19 (qt5_wrap_cpp):
Unknown CMake command "qt5_wrap_cpp".
我安装了Qt Creator,我不确定为什么会收到此错误。 我环顾网络,他们说我应该添加
set(QT_USE_QTXML true)
FIND_PACKAGE(Qt5)
在ext / quazip / CMakeLists.txt中的#project之后 我已经这样做但是我仍然得到这个错误的任何建议吗?
更新: 所以我将以下内容添加到我的顶级CMakeLists.txt
find_package( Qt5Core REQUIRED )
find_package( Qt5Widgets REQUIRED )
find_package( Qt5Gui REQUIRED )
find_package( Qt5OpenGL REQUIRED )
find_package( Qt5Multimedia REQUIRED )
find_package( Qt5WebKitWidgets REQUIRED )
find_package( Qt5Xml REQUIRED )
我清除了缓存,然后进行了配置。那时我得到以下错误。
CMake Error at CMakeLists.txt:3 (find_package):
By not providing "FindQt5Core.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "Qt5Core", but
CMake did not find one.
Could not find a package configuration file provided by "Qt5Core" with any
of the following names:
Qt5CoreConfig.cmake
qt5core-config.cmake
Add the installation prefix of "Qt5Core" to CMAKE_PREFIX_PATH or set
"Qt5Core_DIR" to a directory containing one of the above files. If
"Qt5Core" provides a separate development package or SDK, be sure it has
been installed.
Configuring incomplete, errors occurred!
答案 0 :(得分:4)
要在CMakeLists.txt中使用Qt5
,您应该使用(组合)这些功能:
在顶级CMakeLists.txt
#### Qt5
find_package( Qt5Core REQUIRED )
find_package( Qt5Widgets REQUIRED )
find_package( Qt5Gui REQUIRED )
find_package( Qt5OpenGL REQUIRED )
find_package( Qt5Multimedia REQUIRED )
find_package( Qt5WebKitWidgets REQUIRED )
find_package( Qt5Xml REQUIRED )
set( CMAKE_AUTOMOC ON ) # to automoc remove the need to wrap by hand
编辑: Qt5 cmake模块由Qt5本身提供,因此您需要告诉cmake可以找到qt的位置。请参阅Qt5 CMake doc about that。