【问题标题】:How to configure cmake-based project for a build with Qt如何为使用 Qt 的构建配置基于 cmake 的项目
【发布时间】:2017-04-10 01:37:27
【问题描述】:

here 是关于此的文档,但对我来说看起来不正确, 所以我已将 cmake 指令复制到我的 cmakelists.txt 中,但它不起作用。 很清楚为什么它不起作用 - 因为没有一个说明如何搜索 qt:

我假设有两种情况:

  • 需要设置一些额外的 cmake 指令
  • 应该设置一些环境变量

但没什么。

指令:

find_package(Qt5Widgets)

指的是来自 qt kit 的额外 cmake 脚本,不是吗? 我看到具有该名称的目录(并且包含 *.cmake 脚本但其他名称)但没有具有此名称的脚本

这些是 cmake 3.6 中名称中唯一带有 qt 的 .cmake 文件:

cmake-3.6\Modules\DeployQt4.cmake
cmake-3.6\Modules\FindosgQt.cmake
cmake-3.6\Modules\FindQt.cmake
cmake-3.6\Modules\FindQt3.cmake
cmake-3.6\Modules\FindQt4.cmake
cmake-3.6\Modules\Qt4ConfigDependentSettings.cmake
cmake-3.6\Modules\Qt4Macros.cmake
cmake-3.6\Modules\UseQt4.cmake

====================

C:\dev\tools\CLion.RC\bin\cmake\bin\cmake.exe -DCMAKE_BUILD_TYPE=Debug -G "CodeBlocks - MinGW Makefiles" C:\dev\workspace\algolist.v2 CMakeLists.txt:14 (find_package) 处的 CMake 警告:不提供 该项目要求的 CMAKE_MODULE_PATH 中的“FindQt5Widgets.cmake” CMake查找“Qt5Widgets”提供的包配置文件, 但 CMake 没有找到。

找不到“Qt5Widgets”提供的包配置文件 具有以下任何名称:

Qt5WidgetsConfig.cmake
qt5widgets-config.cmake

将“Qt5Widgets”的安装前缀添加到CMAKE_PREFIX_PATH或 将“Qt5Widgets_DIR”设置为包含上述之一的目录 文件。如果“Qt5Widgets”提供单独的开发包或 SDK,请确保已安装。

CMakeLists.txt:20 (target_link_libraries) 处的 CMake 错误:不能 为不是由
构建的目标“helloworld”指定链接库 这个项目。

-- 配置不完整,出现错误!另请参阅“C:/dev/workspace/algolist.v2/cmake-build-debug/CMakeFiles/CMakeOutput.log”。

似乎它找到了 Qt5Widgets,但绝对不清楚它是如何做到的...... 因此它会在 Qt 工具包中的 Qt5Widgets 文件夹中查找 cmake 文件。 我可以将此文件夹添加到路径中,但我认为这不是有效的方法, 因为有很多cmake文件的子文件夹


Qt5.8 beta,使用 MinGW、Win10、cmake 3.6 构建

【问题讨论】:

  • 因为没有一个说明如何搜索 qt 在 windows 上你需要在 cmake-gui 中设置 QT_CMAKE_PATH 到当它找不到 Qt 时 Qt cmake 文件的根目录(因为我没有在 Program Files 中安装它,所以它从来没有为我做这件事)。如果您从源代码构建 Qt,则该文件夹是 qtbase\lib\cmake 文件夹。
  • Qt5WidgetsConfig.cmake 是此find_package(Qt5Widgets) 所需的文件
  • 谢谢,但对我没有帮助,让我更新问题
  • 这些是 cmake 3.6 中唯一名称中带有 qt 的 .cmake 文件 这是正确的。您需要的 .cmake 文件的位置包含在 Qt5 中,而不是 CMake 本身的一部分。
  • 但这对我没有帮助您似乎没有打开 cmake-gui 并设置我告诉您设置的变量。当你这样做时,确保你的项目的源和构建文件夹在 cmake-gui 中是正确的。

标签: c++ qt cmake


【解决方案1】:

您需要使用CMAKE_PREFIX_PATH

例如:

cmake.exe -DCMAKE_PREFIX_PATH="C:/path/to/Qt/5.X/compiler/lib/cmake"

【讨论】:

  • 如果您使用的是 CLion,请单击 File->Settings->Build, Execution, Deployment->CMake,然后将 -DCMAKE_PREFIX_PATH="C:/path/to/Qt/5.X/compiler/lib/cmake" 添加到 CMake 选项字段。
猜你喜欢
  • 2021-11-05
  • 1970-01-01
  • 1970-01-01
  • 2020-06-24
  • 1970-01-01
  • 2015-09-18
  • 2023-01-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多