OpenGLerror(#97)

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
在参考学习了从0开始的OpenGL学习(十七)-加载模型,这篇文章以后,运行代码出现了如上的错误,请问如何解决

该回答内容部分引用GPT,GPT_Pro更好的解决问题
OpenGLerror (#97) 这个错误经常出现在使用OpenGL编写程序时,它表明顶点着色器和片元着色器无法正确连接,INVALID_OPERATION错误代码表明连接期间发生了意外的错误。一般来说,这个问题可以通过以下几步解决:

  1. 确保你的顶点着色器和片元着色器代码正确无误。
  2. 检查顶点着色器和片元着色器中的变量类型是否正确,如果不正确,请修改为正确的变量类型。
  3. 检查顶点着色器和片元着色器中的函数使用是否正确,如果不正确,请修改为正确的函数。
  4. 检查顶点着色器和片元着色器中的变量是否存在相同的名字,如果有,请修改为不同的变量名字。
  5. 检查传递到OpenGL中的变量是否正确,如果不正确,请修改为正确的变量。
  6. 检查在OpenGL中传递的顶点数据是否有效,如果无效,请使用glGetError()函数查看出错原因。
  7. 使用glGetProgramInfoLog()函数来获取连接失败的原因。
  8. 如果上述方法都无法解决问题,则可以尝试重新安装OpenGL驱动。

一般来说,使用以上方法即可解决OpenGLerror (#97) 错误。
如果回答有帮助,望采纳。

该回答引用GPTᴼᴾᴱᴺᴬᴵ

这个错误提示表明顶点着色器和片段着色器没有成功链接到OpenGL程序中。同时也提示在着色器代码中没有找到 main 函数。

  • 要解决这个问题,需要检查一下顶点着色器和片段着色器的代码,确保它们都包含一个 main 函数,并且函数签名正确(如参数和返回值类型正确)。

  • 还需要检查一下顶点着色器和片段着色器的输出是否正确连接到程序中。可以检查一下着色器代码中的变量名是否正确,以及在程序中是否正确地使用了这些变量。

  • 此外,还需要确保在程序中正确地使用了OpenGL的编译链接流程。可以检查一下程序中是否正确地创建了一个OpenGL程序对象,并且将着色器代码链接到该程序对象中。如果代码中有多个着色器程序,需要确保它们都成功链接到了OpenGL程序对象中。

  • 如果上述方法无法解决问题,可以考虑查看一下OpenGL的日志输出,尝试找到更详细的错误信息。在OpenGL中,可以使用函数 glGetProgramInfoLog() 获取OpenGL程序对象的日志输出。