如何让 CMake 识别我安装了 QT5? (构建 vktraceviewer)
How do I get CMake to recognize I have QT5 installed? (building vktraceviewer)
免责声明:我不熟悉 CMake 的内部结构。
我通过 git (https://github.com/LunarG/VulkanTools.git)
下载了 Vulkan 工具
按照 BUILD.md 中的说明,我使用:
cmake -H. -Bdbuild -DCMAKE_BUILD_TYPE=Debug
这给了我:
WARNING: Qt5 dev libraries not found, vktraceviewer will not be built.
To enable build of vktraceviewer, install package qt5-default.
我已经安装了 qt5-default。
检查 CMake 文件,我发现它在 vktrace/CMakeLists.txt 第 572 行失败:
if (NOT Qt5_FOUND)
Grepping Qt5_FOUND,我没有看到它被设置在任何地方,而且我通过 Google 没有取得多大成功。我假设它是从外部某处设置的,所以我认为问题可能与 VulkanTools 无关。
我的下一步是什么?问题可能出在哪里?制作? Vulkan工具? QT5?徐本图?
规格(如果相关):
- OS:Xubuntu 17.10.
- GFX:Radeon RX 480(台面驱动程序)。
这很可能是由于缺少 Qt5 组件引起的,或者更确切地说,是缺少作为组件开发包的一部分安装的配置文件。 If you look at the line where Qt5 is imported, you'll see:
find_package(Qt5 COMPONENTS Widgets Gui Core Svg QUIET)
Widgets
、Gui
和 Core
似乎是默认安装的,所以在你的情况下,安装 libqt5svg5-dev
应该可以解决这个问题(注意 -dev
后缀)。如果这不能解决您的问题,请尝试从 find_package()
调用中删除 QUIET
修饰符以查看错误消息并希望有问题的组件(我假设您有 write-access 到 CMakeLists.txt
文件).
如果您不能或不想修改 vktrace/CMakeLists.txt
,您可以通过检查 Qt5<component>_FOUND
即 Qt5Svg_FOUND
来测试这些 Qt5 组件,或者,如果您想要更进一步,检查它们各自的 Config
-模块。只需在某处创建一个新的 CMakeLists.txt
,然后将以下内容粘贴到同一目录中 运行 cmake
。
CMakeLists.txt:
find_package(Qt5 COMPONENTS Widgets Gui Core Svg)
message("config for Widgets: '${Qt5Widgets_CONFIG}'")
message("config for Gui: '${Qt5Gui_CONFIG}'")
message("config for Core: '${Qt5Core_CONFIG}'")
message("config for Svg: '${Qt5Svg_CONFIG}'")
输出应该类似于:
config for Widgets: '/usr/lib/x86_64-linux-gnu/cmake/Qt5Widgets/Qt5WidgetsConfig.cmake'
config for Gui: '/usr/lib/x86_64-linux-gnu/cmake/Qt5Gui/Qt5GuiConfig.cmake'
config for Core: '/usr/lib/x86_64-linux-gnu/cmake/Qt5Core/Qt5CoreConfig.cmake'
config for Svg: '/usr/lib/x86_64-linux-gnu/cmake/Qt5Svg/Qt5SvgConfig.cmake'
空路径意味着 CMake
找不到该组件的 config-module,这可能意味着它没有安装。
免责声明:我不熟悉 CMake 的内部结构。
我通过 git (https://github.com/LunarG/VulkanTools.git)
下载了 Vulkan 工具按照 BUILD.md 中的说明,我使用:
cmake -H. -Bdbuild -DCMAKE_BUILD_TYPE=Debug
这给了我:
WARNING: Qt5 dev libraries not found, vktraceviewer will not be built.
To enable build of vktraceviewer, install package qt5-default.
我已经安装了 qt5-default。 检查 CMake 文件,我发现它在 vktrace/CMakeLists.txt 第 572 行失败:
if (NOT Qt5_FOUND)
Grepping Qt5_FOUND,我没有看到它被设置在任何地方,而且我通过 Google 没有取得多大成功。我假设它是从外部某处设置的,所以我认为问题可能与 VulkanTools 无关。
我的下一步是什么?问题可能出在哪里?制作? Vulkan工具? QT5?徐本图?
规格(如果相关):
- OS:Xubuntu 17.10.
- GFX:Radeon RX 480(台面驱动程序)。
这很可能是由于缺少 Qt5 组件引起的,或者更确切地说,是缺少作为组件开发包的一部分安装的配置文件。 If you look at the line where Qt5 is imported, you'll see:
find_package(Qt5 COMPONENTS Widgets Gui Core Svg QUIET)
Widgets
、Gui
和 Core
似乎是默认安装的,所以在你的情况下,安装 libqt5svg5-dev
应该可以解决这个问题(注意 -dev
后缀)。如果这不能解决您的问题,请尝试从 find_package()
调用中删除 QUIET
修饰符以查看错误消息并希望有问题的组件(我假设您有 write-access 到 CMakeLists.txt
文件).
如果您不能或不想修改 vktrace/CMakeLists.txt
,您可以通过检查 Qt5<component>_FOUND
即 Qt5Svg_FOUND
来测试这些 Qt5 组件,或者,如果您想要更进一步,检查它们各自的 Config
-模块。只需在某处创建一个新的 CMakeLists.txt
,然后将以下内容粘贴到同一目录中 运行 cmake
。
CMakeLists.txt:
find_package(Qt5 COMPONENTS Widgets Gui Core Svg)
message("config for Widgets: '${Qt5Widgets_CONFIG}'")
message("config for Gui: '${Qt5Gui_CONFIG}'")
message("config for Core: '${Qt5Core_CONFIG}'")
message("config for Svg: '${Qt5Svg_CONFIG}'")
输出应该类似于:
config for Widgets: '/usr/lib/x86_64-linux-gnu/cmake/Qt5Widgets/Qt5WidgetsConfig.cmake'
config for Gui: '/usr/lib/x86_64-linux-gnu/cmake/Qt5Gui/Qt5GuiConfig.cmake'
config for Core: '/usr/lib/x86_64-linux-gnu/cmake/Qt5Core/Qt5CoreConfig.cmake'
config for Svg: '/usr/lib/x86_64-linux-gnu/cmake/Qt5Svg/Qt5SvgConfig.cmake'
空路径意味着 CMake
找不到该组件的 config-module,这可能意味着它没有安装。