问题
我正在尝试在Windows上用g++构建并运行一个vulkan+glfw程序。我使用msys2的pacman安装了gcc、glfw3和vulkan。
当我的程序调用glfwCreateWindowSurface(instance, window, nullptr, &surface);
时,它会返回VK_ERROR_EXTENSION_NOT_PRESENT
。
我做了什么
安装msys2并使用pacman安装:
- 明w-w64-x86_64-glfw
- mingw-w64-x86_64-vulkan-标头
- 明w-w64-x86_64-vulkan-loader
- mingw-w64-x86_64-vulkan-验证层
下载vulkan-tutorial.com教程的第5部分,并使用构建它
g++ -std=c++17 -O2 -g -c 05_window_surface.cpp -o main.o -lglfw3 -lvulkan
g++ -std=c++17 -O2 -g main.o -o main -lglfw3 -lvulkan
遵循教程中Visual Studio的设置可以完美地工作,但是我更喜欢使用不同的开发环境。
在深入研究并发现github问题后:https://github.com/glfw/glfw/issues/1810,我已通过将-lvulkan
标志更改为-L/path/to/VulkanSDK/1.2.176.1/Lib -l:vulkan-1.lib
来解决问题