Qt 错误:C2065:';GL#U几何体#U着色器';:未声明的标识符

Qt 错误:C2065:';GL#U几何体#U着色器';:未声明的标识符,qt,opengl-es,Qt,Opengl Es,我在尝试使用Qt Creator和安装了Qt 5.11和MSVC 2017编译器的QtCreator构建应用程序时遇到此错误: C:\Users\IEUser\go\src\company\3dpe\3dpe materials.cpp:190:错误: C2065:“GL_几何体_着色器”:未声明的标识符 错误发生在下面代码的第二行,请注意第1行和第3行是正常的,只有第2行是坏的: data[renderer]->vtxShd = addShaderToProgram(vertexShad

我在尝试使用Qt Creator和安装了Qt 5.11和MSVC 2017编译器的QtCreator构建应用程序时遇到此错误:

C:\Users\IEUser\go\src\company\3dpe\3dpe materials.cpp:190:错误: C2065:“GL_几何体_着色器”:未声明的标识符

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

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\u GEOMETRY\u着色器

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
    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
gl2.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
    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编译器构建时,不会发生错误



到目前为止,我还没有找到解决方案,只是想有人会帮忙。

几何体着色器在OpenGL ES 3.0中不受支持。看

但自从OpenGL ES 3.2以来,几何体着色器就得到了支持。看


请进一步参阅。

@user3405291 3.2是最新的OpenGL ES版本。但这取决于您的硬件和驱动程序是否受支持。