Vulkan ‘VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR’未在此范围内声明

问题描述 投票:0回答:1

我正在尝试在我的 Linux VM(具有 Windows 10 笔记本电脑)上编译 Vulkan 项目。执行此操作时出现错误。

这是编译命令和我得到的错误: g++ -std=c++17 -Iheaders -O2 -o A01 A01.cpp -lglfw -lvulkan -ldl -lpthread -lX11 -lXrandr 在 A01.cpp:3 包含的文件中: module/Starter.hpp:在成员函数“void BaseProject::createInstance()”中: module/Starter.hpp:477:23:错误:“VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR”未在此范围内声明 477 | 477 createInfo.flags |= VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR; | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ module/Starter.hpp:在成员函数‘std::vector BaseProject::getRequiredExtensions()’中: module/Starter.hpp:511:28:错误:“VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME”未在此范围内声明 511 | 511如果(checkIfItHasExtension(VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME)){ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

我在整个互联网上进行了搜索,但找不到任何可能包含这些全局变量的可安装库。由于我是 Vulkan 环境的新手,我不知道这可能来自哪里...希望得到一些帮助,谢谢

linux compilation vulkan
1个回答
0
投票

如果这些是您遇到的唯一“未在此范围内声明”错误,那么您可以将宏替换为它们的替换项(它们在此处定义):

createInfo.flags |= 0x00000001;
// and
if(checkIfItHasExtension("VK_KHR_portability_enumeration")) {

我建议添加注释来解释它们对应的宏,以使代码更具可读性。

© www.soinside.com 2019 - 2024. All rights reserved.