【问题标题】:How does CMake know which version of Qt to use?CMake 如何知道要使用哪个版本的 Qt?
【发布时间】:2016-06-04 12:43:36
【问题描述】:

我已经成功使用 Qt4 一段时间了。我可以使用QT4_WRAP_CPPQT4_WRAP_UI等CMake命令。现在我已经安装了Qt5,但由于某种原因Qt无法识别我的安装。我收到此错误。

CMake Error at /example/project/dir/build_target.cmake:102 (QT5_WRAP_CPP):
  Unknown CMake command "QT5_WRAP_CPP".

我该怎么做

  • 检查 CMake 找到了哪些 Qt 版本?
  • 指定 CMake 应该使用的 Qt 版本?
  • 确保 Qt 已正确安装?

【问题讨论】:

  • 你的cmake版本是什么?您是否 read this 并正确设置了 CMAKE_PREFIX_PATH ?你可以尝试一个新的最基本的项目和简短的 .cmake 看看它是否出错,如果它确实为我们提供了你用来构建的文件?

标签: qt cmake


【解决方案1】:

如果您使用FindQt3FindQt4,它将找到您的Qt 3 或4。使用FindQt,它会尝试查找Qt 3 或4,您可以指定DESIRED_QT_VERSION(3 或4)。目前使用 CMake 3.5 它找不到 Qt 5。

对于 Qt 5,不再提供特定的查找命令,您必须查找 Qt 5 的特定部分,将它们的小部件与find_package(Qt5Widgets) 对齐。然后将版本存储在Qt5Widgets_VERSION

另请参阅文档:http://doc.qt.io/qt-5/cmake-manual.html

为什么这么复杂?在过去,CMake 试图为它支持的每个软件提供一个 find* 模块。模块列表快速增长,每个新版本的 Boost、Qt、Gtk 等模块都需要测试和经常修改。该系统无法扩展。
现在 CMake 更喜欢第三方软件自己提供的配置文件。直到 Qt4 CMake 提供了一个查找模块。从 Qt 5 开始,Qt 提供了配置文件。

通常使用 CMake,您不会检查库是否安装正确。使用 Autotools 这些检查是常见的,但不使用 CMake。可能这些检查需要一些时间,用户有责任拥有工作库。

【讨论】:

  • 感谢您提供背景信息和见解。
猜你喜欢
  • 2021-10-14
  • 2022-01-08
  • 1970-01-01
  • 2016-02-19
  • 2014-01-25
  • 2017-10-09
  • 1970-01-01
  • 1970-01-01
  • 2012-03-29
相关资源
最近更新 更多