错误:C2065:' GL_GEOMETRY_SHADER':未声明的标识符

时间:2018-06-03 07:28:51

标签: qt opengl-es

我尝试使用QtCreator和Microsoft Visual Studio Community 2017安装的Qt 5.11和 MSVC 2017 编译器构建应用程序时出现此错误:

  

C:\ Users \ IEUser \ go \ src \ company \ 3dpe \ 3dpe-materials.cpp:190:错误:   C2065:' GL_GEOMETRY_SHADER':未声明的标识符

错误发生在下面代码的第二行,请注意第一行和第三行是正常的,只有第二行是坏的:

data[renderer]->vtxShd = addShaderToProgram(vertexShaderSource, GL_VERTEX_SHADER, data[renderer]->shdPrg, renderer);
data[renderer]->geoShd = addShaderToProgram(geometryShaderSource, GL_GEOMETRY_SHADER, data[renderer]->shdPrg, renderer);
data[renderer]->frgShd = addShaderToProgram(fragmentShaderSource, GL_FRAGMENT_SHADER, data[renderer]->shdPrg, renderer);

错误屏幕截图如下所示:

GL_GEOMETRY_SHADER error screen-shot

发生错误是因为GL_GEOMETRY_SHADER未在以下头文件中定义:

gl3.h头文件:

    Directory: C:\Qt\Qt5.11.0\5.11.0\winrt_x64_msvc2017\include\QtANGLE\GLES3


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        5/14/2018  11:28 PM          83875 gl3.h

gl2.h头文件:

    Directory: C:\Qt\Qt5.11.0\5.11.0\winrt_x64_msvc2017\include\QtANGLE\GLES2


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        5/14/2018  11:28 PM          44659 gl2.h

使用 MinGW 编译器进行构建时,错误会发生 NOT

到目前为止我无法找到解决方案,只是觉得有人会帮忙。

1 个答案:

答案 0 :(得分:1)

OpenGL ES 3.0中支持 几何着色器。见OpenGL ES Shading Language 3.00 Specification

但是自OpenGL ES 3.2以来,支持几何着色器。看到。 OpenGL ES Shading Language 3.20 Specification

进一步查看Khronos OpenGL ES Registry