vkCreateDebugReportCallback EXT 未链接,但 vulkan.h 中的所有其他功能都运行良好

vkCreateDebugReportCallback EXT not linking, but every other functions in vulkan.h works perfectly

所以我最近一直在尝试学习 Vulkan,在尝试让验证层工作时,我遇到了错误 LNK2019:

1>Renderer.obj : error LNK2019: unresolved external symbol vkCreateDebugReportCallbackEXT referenced in function "private: void __cdecl Renderer::_InitDebug(void)" (?_InitDebug@Renderer@@AEAAXXZ)

现在奇怪的是 vulkan.h 中的所有其他功能都能完美运行。

我有 vulkan-1.lib 链接,我 运行 vulkan 的 AMD 实现。该库来自 Vulkan SDK。

debug_report_ext 中的调试功能不是 Vulkan 核心的一部分。在确保实际支持后,您需要通过 vkGetInstanceProcAddr 从实例动态加载它们:

PFN_vkCreateDebugReportCallbackEXT CreateDebugReportCallback = VK_NULL_HANDLE;
CreateDebugReportCallback = (PFN_vkCreateDebugReportCallbackEXT)vkGetInstanceProcAddr(instance, "vkCreateDebugReportCallbackEXT");

详情见my Vulkan debugging helper unit