Estou tentando compilar um programa que usa vulkan hpp e usa um método em um arquivo chamado vulkan_driver.h assim:
// Evaluate f and if result is not a success throw proper vk exception.
#define CHECK_VK_RESULT(x) do { \
vk::Result res = vk::Result(x); \
int tmp = 0; \
vk::createResultValue(res, tmp, __FILE__ ":" TOSTRING(__LINE__)); \
} while (0)
quando compilo recebo o seguinte erro:
[ 199s] In file included from /home/abuild/rpmbuild/BUILD/decaf-emu-20220508T212126/src/libgpu/src/vulkan/vulkan_driver.cpp:2:
[ 199s] /home/abuild/rpmbuild/BUILD/decaf-emu-20220508T212126/src/libgpu/src/vulkan/vulkan_driver.cpp: In member function 'void vulkan::Driver::initialise(vk::Instance, vk::PhysicalDevice, vk::Device, vk::Queue, uint32_t)':
[ 199s] /home/abuild/rpmbuild/BUILD/decaf-emu-20220508T212126/src/libgpu/src/vulkan/vulkan_driver.h:36:8: error: 'createResultValue' is not a member of 'vk'; did you mean 'createResultValueType'?
[ 199s] 36 | vk::createResultValue(res, tmp, __FILE__ ":" TOSTRING(__LINE__)); \
[ 199s] | ^~~~~~~~~~~~~~~~~
[ 199s] /home/abuild/rpmbuild/BUILD/decaf-emu-20220508T212126/src/libgpu/src/vulkan/vulkan_driver.cpp:89:4: note: in expansion of macro 'CHECK_VK_RESULT'
[ 199s] 89 | CHECK_VK_RESULT(vmaCreateAllocator(&allocatorCreateInfo, &mAllocator));
[ 199s] | ^~~~~~~~~~~~~~~
[ 199s] make[2]: *** [src/libgpu/CMakeFiles/libgpu.dir/build.make:647: src/libgpu/CMakeFiles/libgpu.dir/src/vulkan/vulkan_driver.cpp.o] Error 1
Como posso corrigir esse erro?
Eu encontrei o mesmo erro ao tentar construir https://github.com/jherico/Vulkan (no Ubuntu 22.04 e Windows 10)
Por exemplo, esta linha em glfw.cpp leva ao mesmo erro de compilação que Ahmed Moselhi postou.
Descobri que o nome E a assinatura para esta função foram alterados em vulkan.hpp
(consulte este commit no repositório Github Vulkan-Headers )
Para fazer a compilação funcionar novamente, precisei alterar os usos da função de:
para:
No seu caso @Ahmed Moselhi, você deve alterar o código para o seguinte: