如何让CMake识别我安装了QT5? (建立vktraceviewer)

时间:2018-03-15 08:57:05

标签: linux cmake qt5 vulkan

免责声明:我不熟悉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,我没有看到它被设置在任何地方,我没有通过谷歌获得太多成功。我认为它是从外部设置的,所以我认为问题可能不在于VulkanTools。

我的下一步是什么?问题可能在哪里? CMake的? VulkanTools? QT5? Xubuntu的?

规格(如果相关):

  • OS:Xubuntu 17.10。
  • GFX:Radeon RX 480(台面驱动程序)。

1 个答案:

答案 0 :(得分: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后缀)。如果这不能解决您的问题,请尝试从QUIET调用中删除find_package()修饰符以查看错误消息,并希望是有问题的组件(我假设您具有对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无法找到此组件的配置模块,这可能意味着它尚未安装。