使用 glslc 从 vulkan 教程编译顶点着色器会出现错误:尚不支持链接多个文件

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

我目前正在尝试根据此处找到的(可能已知的)教程来学习 Vulkan 编程:https://vulkan-tutorial.com/

我在描述如何编译着色器的部分(这部分:https://vulkan-tutorial.com/en/Drawing_a_triangle/Graphics_pipeline_basics/Shader_modules

我想做的基本上只是使用 VulkanSDK 中的 glsl 编译器编译给定的顶点着色器示例(顺便说一句,我使用的是 Linux。)代码如下所示(与教程中的代码相同):

#version 450

layout(location = 0) out vec3 fragColor;

vec2 positions[3] = vec2[](
    vec2(0.0, -0.5),
    vec2(0.5, 0.5),
    vec2(-0.5, 0.5)
);

vec3 colors[3] = vec3[](
    vec3(1.0, 0.0, 0.0),
    vec3(0.0, 1.0, 0.0),
    vec3(0.0, 0.0, 1.0)
);

void main() {
    gl_Position = vec4(positions[gl_VertexIndex], 0.0, 1.0);
    fragColor = colors[gl_VertexIndex];
}

当我尝试使用此命令进行编译时:

glslc shader.vert - o vert.spv

我收到此错误:

glslc: error: linking multiple files is not supported yet. Use -c to compile files individually.

我有点困惑,因为我没有对教程进行任何更改,并期望它能够正常工作,而我目前还没有足够的理解来自行解决问题。

glsl shader vulkan
1个回答
0
投票

编译着色器时使用

glslc shader.vert -o vert.spv
而不是
glslc shader.vert - o vert.spv

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