MacOS下glfwGetRequiredInstanceExtensions返回NULL问题求助
针对你在2014年末款MacBook Air(Big Sur 11.7.7、Intel HD5000、Vulkan SDK 1.3.250.0)上遇到的问题,整理以下解决思路:
检查GLFW与Vulkan SDK版本兼容性
确认当前使用的GLFW版本是否适配Vulkan SDK 1.3.250.0,旧版GLFW可能存在新SDK实例扩展识别缺陷。尝试更新GLFW至最新稳定版,或回退到之前能正常运行应用时的GLFW版本。强制指定MoltenVK ICD路径
系统更新可能破坏了ICD的全局注册,手动设置环境变量指向MoltenVK的ICD配置文件:export VK_ICD_FILENAMES=/usr/local/share/vulkan/icd.d/MoltenVK_icd.json同时验证
libMoltenVK.dylib的实际路径,若与验证层提示的../../../lib/libMoltenVK.dylib不符,可调整DYLD_LIBRARY_PATH指向正确库目录(如/usr/local/lib),或创建软链接修正路径。重新注册Vulkan ICD与验证层
系统更新可能重置了Vulkan全局配置,重新运行SDK安装脚本修复注册:cd /Volumes/VulkanSDK/1.3.250.0/macOS ./install_vulkan.sh执行完成后重启终端,再测试应用。
手动添加窗口表面所需扩展
由于glfwGetRequiredInstanceExtensions返回空,手动将VK_KHR_surface和VK_MVK_macos_surface添加到实例创建的扩展列表中,强制告知Vulkan实例需要这些扩展后,再尝试调用glfwCreateWindowSurface。排查系统权限与文件完整性
检查系统更新后/usr/local/share/vulkan目录下的ICD和验证层配置文件是否存在、权限是否正常:ls -l /usr/local/share/vulkan/icd.d/ ls -l /usr/local/share/vulkan/explicit_layer.d/若权限异常,使用
sudo chmod命令修复为可读权限。
内容的提问来源于stack exchange,提问作者user14265619

