我安装的是Qt5.15.0,安装自己带了一个vulkan的例子,地址在这里,
C:\Qt\qt5\Examples\Qt-5.15.0\quick\scenegraph\scenegraph.pro
用QtCreator打开后,build一下,发现找不到vulkan/vulkan.h。
下载vulkan SDK下载地址在这里,
LunarXchangehttps://vulkan.lunarg.com/sdk/home因为不清楚版本的兼容性,一时半会也没找到可用的信息,我就随便选了一个较近的版本,
https://sdk.lunarg.com/sdk/download/1.2.198.1/windows/VulkanSDK-1.2.198.1-Installer.exe
然后安装到了这里,
D:\VulkanSDK\1.2.198.1
编译scenegraph.pro项目打开scenegraph.pro文件,添加了下面三行,
QT += vulkan INCLUDEPATH += D:/VulkanSDK/1.2.198.1/Include VULKAN_SDK = D:/VulkanSDK/1.2.198.1
全部 scenegraph.pro的内容给出来如下,
QT += vulkan
TEMPLATE = subdirs
qtConfig(opengl(es1|es2)?) {
SUBDIRS += \
graph \
simplematerial \
sgengine \
fboitem \
openglunderqml \
textureinthread \
twotextureproviders
}
SUBDIRS += \
customgeometry \
rendernode \
threadedanimation
macos|ios {
SUBDIRS += \
metalunderqml \
metaltextureimport
}
win32 {
SUBDIRS += d3d11underqml
}
qtConfig(vulkan) {
SUBDIRS += \
vulkanunderqml \
vulkantextureimport
}
EXAMPLE_FILES += \
shared
INCLUDEPATH += D:/VulkanSDK/1.2.198.1/Include
VULKAN_SDK = D:/VulkanSDK/1.2.198.1
这个SDK变量从哪里来呢?
可以到这里去找,
C:\Qt\qt5\5.15.0\msvc2019_64\mkspecs\features\win32\windows_vulkan_sdk.prf
内容如下,
isEmpty(QMAKE_INCDIR_VULKAN) {
# Pick up the VULKAN_SDK env var set by the LunarG SDK so that the Vulkan
# headers are found out-of-the-box on typical Windows setups.
QMAKE_INCDIR_VULKAN = $$(VULKAN_SDK)/include
# Do not add default include paths as that can knock std headers
# out of their stride due to their usage of #include_next.
contains(QMAKE_DEFAULT_INCDIRS, $$QMAKE_INCDIR_VULKAN): \
QMAKE_INCDIR_VULKAN =
# Do not export the include dir but resolve it on every qmake call.
QMAKE_EXPORT_INCDIR_VULKAN = -
}
大意就是说,如果包含VULKAN的话,就需要VULKAN_SDK这个地址,这个地址你可以在环境变量中定义,也可以和我一样在scenegraph.pro中定义。
完事之后右击项目,选择run qmake,然后再build,就可以正常运行程序了。
运行子程序这个scenegraph是一个比较大的项目,里面有很多小项目,你可选择其中的子项目,右击run单独运行,比如我要运行d3d11underqml,如图
然后,就可以看到运行结果了,
本文结束。