【发布时间】: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 中是正确的。