【问题标题】:How do I get CMake to recognize I have QT5 installed? (building vktraceviewer)如何让 CMake 识别我安装了 QT5? (构建 vktraceviewer)
【发布时间】:2018-03-15 08:57:05
【问题描述】:

免责声明:我不熟悉 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?许邦图?


规格(如果相关):

  • 操作系统:Xubuntu 17.10。
  • GFX:Radeon RX 480(台面驱动程序)。

【问题讨论】:

  • 条件 NOT Qt5_FOUND 表示未找到 QT5(库和/或包含文件)。安装qt5-default 后,您是否尝试过清理构建目录(在您的情况下为dbuild)?因此 CMake 将重试查找库。
  • 是的,我已经删除了dbuild并重建了,没有变化。
  • 只是完全干净地重新下载并重新安装。
  • 重新下载后问题仍然存在 :(

标签: linux cmake qt5 vulkan


【解决方案1】:

这很可能是由于缺少 Qt5 组件,或者更确切地说,缺少配置文件,该文件作为组件开发包的一部分安装。 If you look at the line where Qt5 is imported, you'll see:

find_package(Qt5 COMPONENTS Widgets Gui Core Svg QUIET)

WidgetsGuiCore 似乎是默认安装的,所以在你的情况下,安装 libqt5svg5-dev 应该可以解决这个问题(注意 -dev 后缀)。如果这不能解决您的问题,请尝试从 find_package() 调用中删除 QUIET 修饰符以查看错误消息并希望看到有问题的组件(我假设您对 CMakeLists.txt 文件具有写访问权限)。

如果您无法或不想修改vktrace/CMakeLists.txt,您可以通过检查Qt5<component>_FOUND 来测试这些Qt5 组件,即Qt5Svg_FOUND,或者,如果您想更进一步,检查它们各自的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 找不到该组件的配置模块,这可能意味着它没有安装。

【讨论】:

  • 已解决 - 这是 libqt5svg5-dev,谢谢。 (qt5包太多,我都不想安装)。
猜你喜欢
  • 2015-02-03
  • 1970-01-01
  • 2019-01-10
  • 2014-05-27
  • 1970-01-01
  • 1970-01-01
  • 2013-02-18
相关资源
最近更新 更多