unresolved external symbol “class vk::DispatchLoaderDynamic vk::defaultDispatchLoaderDynamic“ 的奇怪原因

有一次我在使用 vulkan hpp raii 的 dll 项目中遇到了 unresolved external symbol “class vk::DispatchLoaderDynamic vk::defaultDispatchLoaderDynamic” 的链接错误,但是我确实已经在编译成 dll 的项目中定义了 VULKAN_HPP_STORAGE_SHARED VULKAN_HPP_STORAGE_SHARED_EXPORT 在 exe 项目中定义了 VULKAN_HPP_STORAGE_SHARED,而且我对 vulkan hpp raii 搜索也没找到 DispatchLoaderDynamic

怎么搞都搞不出来之后,我就只好一个个注释代码,来找是哪段代码出了问题

最后发现是这一段出了问题

vk::PresentInfoKHR present_info(
    **m_render_finished_semaphores[m_current_frame_index], *m_swapchain_data.swap_chain, image_index);
vk::Result result = (*m_present_queue).presentKHR(present_info);

我的 m_present_queue 的类型是 vk::raii::Queue(*m_present_queue) 之后就是 vk::Queue 我觉得应该没错

但是我确实改成 m_present_queue.presentKHR(present_info); 之后就没问题了……就很神奇……我不知道为什么

你可能感兴趣的:(GameEngineDev,c++,vulkan)