While trying to get Vulkan validation layers to work, I got error LNK2019:
1>Renderer.obj : error LNK2019: unresolved external symbol vkCreateDebugReportCallbackEXT referenced in function "private: void __cdecl Renderer::_InitDebug(void)" (?_InitDebug@Renderer@@AEAAXXZ)
Now the odd thing is that every other function in vulkan.h
works perfectly.
I have vulkan-1.lib
linked, and I run the AMD implementation of Vulkan. The library is from the Vulkan SDK.
The debugging functions from debug_report_ext are not part of the Vulkan core. You need to dynamically load them from the instance via vkGetInstanceProcAddr after making sure that it's actually supported:
PFN_vkCreateDebugReportCallbackEXT CreateDebugReportCallback = VK_NULL_HANDLE;
CreateDebugReportCallback = (PFN_vkCreateDebugReportCallbackEXT)vkGetInstanceProcAddr(instance, "vkCreateDebugReportCallbackEXT");
See my Vulkan debugging helper unit for details.