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



我已经成功使用Qt4一段时间了。我可以使用CMake命令,如QT4_WRAP_CPPQT4_WRAP_UI等。现在我已经安装了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正确安装

如果您使用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则不常见。这些检查可能需要一些时间,用户有责任拥有可用的库。

最新更新