Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CMake如何知道使用哪个版本的Qt?_Qt_Cmake - Fatal编程技术网

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

CMake如何知道使用哪个版本的Qt?,qt,cmake,Qt,Cmake,我已经成功使用Qt4一段时间了。我可以使用CMake命令,例如QT4\u WRAP\u CPP,QT4\u WRAP\u UI,等等。现在我已经安装了Qt5,但由于某些原因Qt无法识别我的安装。我收到这个错误 CMake Error at /example/project/dir/build_target.cmake:102 (QT5_WRAP_CPP): Unknown CMake command "QT5_WRAP_CPP". 我该怎么办 检查CMake找到了哪些版本的Qt 指定CM

我已经成功使用Qt4一段时间了。我可以使用CMake命令,例如
QT4\u WRAP\u CPP
QT4\u WRAP\u 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已正确安装

如果使用
FindQt3
FindQt4
它会找到qt3或qt4。使用
FindQt
它尝试查找Qt 3或4,您可以指定
所需的Qt版本
(3或4)。目前,在CMake 3.5中,找不到Qt 5

对于Qt5,不再提供特定的find命令,您必须查找Qt5的特定部分,将它们的小部件与
find\u包(Qt5Widgets)
对齐。然后将该版本存储在
Qt5Widgets\u version

另见文件:

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


通常使用CMake时,您不会检查库是否正确安装。使用Autotools,这些检查在常见的情况下进行,但不使用CMake。这些检查可能需要一些时间,用户有责任创建可用的库。

您的cmake版本是什么?是否正确设置了CMAKE_前缀_路径?你能尝试一个新的最基本的项目和short.cmake,看看它是否出错,以及它是否提供了你用来构建的文件?谢谢你提供的背景信息和见解。