我尝试使用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
未在以下头文件中定义:
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 。
到目前为止我无法找到解决方案,只是觉得有人会帮忙。
答案 0 :(得分:1)
OpenGL ES 3.0中支持 几何着色器。见OpenGL ES Shading Language 3.00 Specification
但是自OpenGL ES 3.2以来,支持几何着色器。看到。 OpenGL ES Shading Language 3.20 Specification