【发布时间】:2023-03-24 00:01:01
【问题描述】:
这是我的应用程序启动时遇到的错误:
Vertex shader(s) failed to link, fragment shader(s) failed to link.
Vertex link error: INVALID_OPERATION.
ERROR: error(#97) No program main found
fragment link error: INVALID_OPERATION.
ERROR: error(#97) No program main found
我找不到任何错误,但着色器已正确(完全)加载和编译,没有任何错误。这是我的着色器:
顶点着色器:
#version 330
layout (location = 0) in vec3 position;
void main()
{
gl_Position = vec4(position, 1.0);
}
片段着色器:
#version 330
out vec4 outputColor;
void main()
{
outputColor = vec4(1.0, 0.5, 0.2, 1.0);
}
【问题讨论】:
-
当我没有向
glShaderSource函数提供正确的着色器源字符串时,我通常会收到类似的错误。您的着色器看起来正确,因此请检查您的源代码字符串/字符数组。 -
我认为没有错:glShaderSource(vertexShader, 1, &VSSource, NULL)。它正在使用一个 char 数组...
-
@TomS 你能在调试器中单步执行,看看 VSSource 是否包含你当时认为的字符串吗?
-
好的,谢谢。我遇到了问题...加载后内容丢失了。现在工作正常...再次感谢!