【问题标题】:Opengl: error(#97) no program main foundOpengl: 错误(#97) 找不到主程序
【发布时间】: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 是否包含你当时认为的字符串吗?
  • 好的,谢谢。我遇到了问题...加载后内容丢失了。现在工作正常...再次感谢!

标签: opengl glsl


【解决方案1】:

此类错误通常是由glShaderSource 未收到正确的源代码字符串引起的。

问题的原因很可能是您的着色器代码未正确加载,并且将不正确的字符串(或字符数组)传递给glShaderSource

【讨论】:

    猜你喜欢
    • 2021-05-01
    • 2018-04-11
    • 1970-01-01
    • 1970-01-01
    • 2021-07-01
    • 1970-01-01
    • 2012-04-18
    • 1970-01-01
    相关资源
    最近更新 更多