我正在尝试按照教程在 Ubuntu 22 中为 Vulcan 设置开发环境 https://vulkan-tutorial.com/Development_environment#page_Linux.
我收到错误
error: ‘vkEnumerateInstanceExtensionProperties’ was not declared in this scope
19 | vkEnumerateInstanceExtensionProperties(nullptr, &extensionCount, nullptr);
我的代码:
#define GLFW_INCLUDE_VULCAN
#include <GLFW/glfw3.h>
#define GLM_FORCE_DEPTH_ZERO_TO_ONE
#include "glm/mat4x4.hpp"
#include "glm/vec4.hpp"
#include <iostream>
int main() {
glfwInit();
glfwWindowHint(GLFW_CLIENT_API, GLFW_NO_API);
GLFWwindow *window =
glfwCreateWindow(800, 600, "Vulkan window", nullptr, nullptr);
uint32_t extensionCount = 0;
vkEnumerateInstanceExtensionProperties(nullptr, &extensionCount, nullptr);
std::cout << extensionCount << " extensions supported\n";
glm::mat4 matrix;
glm::vec4 vec;
auto test = matrix * vec;
while (!glfwWindowShouldClose(window)) {
glfwPollEvents();
}
glfwDestroyWindow(window);
glfwTerminate();
return 0;
}
生成文件:
CFLAGS = -std=c++17 -O2
LDFLAGS = -lglfw -lvulkan -ldl -lpthread -lX11 -lXxf86vm -lXrandr -lXi
VulkanTest: main.cpp
g++ $(CFLAGS) -o VulkanTest main.cpp $(LDFLAGS)
.PHONY: test clean
test: VulkanTest
./VulkanTest
clean:
rm -f VulkanTest
我错过了什么?
我安装了所有必需的库并且 GLFW 正在正确导入
这是一个错字。
拼写为 Vul
k
an。带有 c
的 Vulcan 是 更圆、更大的东西。
正确拼写你的
GLFW_INCLUDE_VULCAN
(GLFW_INCLUDE_VULKAN
),这应该可以正常编译。