未知的CMake Qt5命令

时间:2016-01-27 22:08:06

标签: cmake qt5

我目前正在尝试使用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!

1 个答案:

答案 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