CMake 如何知道要使用哪个版本的 Qt?

Dan*_*ett 2 qt cmake

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

CMake Error at /example/project/dir/build_target.cmake:102 (QT5_WRAP_CPP):
  Unknown CMake command "QT5_WRAP_CPP".
Run Code Online (Sandbox Code Playgroud)

我如何

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

usr*_*567 5

如果您使用FindQt3或 ,FindQt4它会找到您 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提供了find模块。从 Qt 5 开始,Qt 提供配置文件。

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