在学习了OpenGL的一些基础知识之后,我将学习OpenGL ES API。我正在尝试使用此示例在OpenGL ES中绘制一个三角形:https://www.khronos.org/assets/uploads/books/openglr_es_20_programming_guide_sample.pdf

在代码中,作者包括文件“esUtil.h”,但是我从任何官方来源都找不到它。我尝试使用EGL和GLES 3库在Google上复制某个项目的“esUtil.h”文件,但该程序仍然无法运行。帮帮我,我想念什么?

这些是我从构建解决方案中得到的错误:

Severity    Code    Description Project File    Line    Suppression State
Error   LNK2019 unresolved external symbol __imp__glAttachShader@8 referenced in function "int __cdecl Init(struct ESContext *)" (?Init@@YAHPAUESContext@@@Z)   OpenGLES_Example    D:\WorkSpace\Visual Studio\myOpenGLSamples\OpenGLES_Example\Source.obj  1
Error   LNK2019 unresolved external symbol __imp__glCompileShader@4 referenced in function "unsigned int __cdecl LoadShader(unsigned int,char const *)" (?LoadShader@@YAIIPBD@Z)    OpenGLES_Example    D:\WorkSpace\Visual Studio\myOpenGLSamples\OpenGLES_Example\Source.obj  1
Error   LNK2019 unresolved external symbol __imp__glCreateProgram@0 referenced in function "int __cdecl Init(struct ESContext *)" (?Init@@YAHPAUESContext@@@Z)  OpenGLES_Example    D:\WorkSpace\Visual Studio\myOpenGLSamples\OpenGLES_Example\Source.obj  1
Error   LNK2019 unresolved external symbol __imp__glCreateShader@4 referenced in function "unsigned int __cdecl LoadShader(unsigned int,char const *)" (?LoadShader@@YAIIPBD@Z) OpenGLES_Example    D:\WorkSpace\Visual Studio\myOpenGLSamples\OpenGLES_Example\Source.obj  1
Error   LNK2019 unresolved external symbol __imp__glDeleteProgram@4 referenced in function "int __cdecl Init(struct ESContext *)" (?Init@@YAHPAUESContext@@@Z)  OpenGLES_Example    D:\WorkSpace\Visual Studio\myOpenGLSamples\OpenGLES_Example\Source.obj  1
Error   LNK2019 unresolved external symbol __imp__glDeleteShader@4 referenced in function "unsigned int __cdecl LoadShader(unsigned int,char const *)" (?LoadShader@@YAIIPBD@Z) OpenGLES_Example    D:\WorkSpace\Visual Studio\myOpenGLSamples\OpenGLES_Example\Source.obj  1
Error   LNK2019 unresolved external symbol __imp__glEnableVertexAttribArray@4 referenced in function "void __cdecl Draw(struct ESContext *)" (?Draw@@YAXPAUESContext@@@Z)   OpenGLES_Example    D:\WorkSpace\Visual Studio\myOpenGLSamples\OpenGLES_Example\Source.obj  1
Error   LNK2019 unresolved external symbol __imp__glGetProgramiv@12 referenced in function "int __cdecl Init(struct ESContext *)" (?Init@@YAHPAUESContext@@@Z)  OpenGLES_Example    D:\WorkSpace\Visual Studio\myOpenGLSamples\OpenGLES_Example\Source.obj  1
Error   LNK2019 unresolved external symbol __imp__glGetProgramInfoLog@16 referenced in function "int __cdecl Init(struct ESContext *)" (?Init@@YAHPAUESContext@@@Z) OpenGLES_Example    D:\WorkSpace\Visual Studio\myOpenGLSamples\OpenGLES_Example\Source.obj  1
Error   LNK2019 unresolved external symbol __imp__glGetShaderiv@12 referenced in function "unsigned int __cdecl LoadShader(unsigned int,char const *)" (?LoadShader@@YAIIPBD@Z) OpenGLES_Example    D:\WorkSpace\Visual Studio\myOpenGLSamples\OpenGLES_Example\Source.obj  1
Error   LNK2019 unresolved external symbol __imp__glGetShaderInfoLog@16 referenced in function "unsigned int __cdecl LoadShader(unsigned int,char const *)" (?LoadShader@@YAIIPBD@Z)    OpenGLES_Example    D:\WorkSpace\Visual Studio\myOpenGLSamples\OpenGLES_Example\Source.obj  1
Error   LNK2019 unresolved external symbol __imp__glLinkProgram@4 referenced in function "int __cdecl Init(struct ESContext *)" (?Init@@YAHPAUESContext@@@Z)    OpenGLES_Example    D:\WorkSpace\Visual Studio\myOpenGLSamples\OpenGLES_Example\Source.obj  1
Error   LNK2019 unresolved external symbol __imp__glShaderSource@16 referenced in function "unsigned int __cdecl LoadShader(unsigned int,char const *)" (?LoadShader@@YAIIPBD@Z)    OpenGLES_Example    D:\WorkSpace\Visual Studio\myOpenGLSamples\OpenGLES_Example\Source.obj  1
Error   LNK2019 unresolved external symbol __imp__glUseProgram@4 referenced in function "void __cdecl Draw(struct ESContext *)" (?Draw@@YAXPAUESContext@@@Z)    OpenGLES_Example    D:\WorkSpace\Visual Studio\myOpenGLSamples\OpenGLES_Example\Source.obj  1
Error   LNK2019 unresolved external symbol __imp__glVertexAttribPointer@24 referenced in function "void __cdecl Draw(struct ESContext *)" (?Draw@@YAXPAUESContext@@@Z)  OpenGLES_Example    D:\WorkSpace\Visual Studio\myOpenGLSamples\OpenGLES_Example\Source.obj  1
Error   LNK2019 unresolved external symbol _esCreateWindow referenced in function "int __cdecl esMain(struct ESContext *)" (?esMain@@YAHPAUESContext@@@Z)   OpenGLES_Example    D:\WorkSpace\Visual Studio\myOpenGLSamples\OpenGLES_Example\Source.obj  1
Error   LNK2019 unresolved external symbol _esRegisterDrawFunc referenced in function "int __cdecl esMain(struct ESContext *)" (?esMain@@YAHPAUESContext@@@Z)   OpenGLES_Example    D:\WorkSpace\Visual Studio\myOpenGLSamples\OpenGLES_Example\Source.obj  1
Error   LNK2019 unresolved external symbol _esRegisterShutdownFunc referenced in function "int __cdecl esMain(struct ESContext *)" (?esMain@@YAHPAUESContext@@@Z)   OpenGLES_Example    D:\WorkSpace\Visual Studio\myOpenGLSamples\OpenGLES_Example\Source.obj  1
Error   LNK2019 unresolved external symbol _esLogMessage referenced in function "int __cdecl Init(struct ESContext *)" (?Init@@YAHPAUESContext@@@Z) OpenGLES_Example    D:\WorkSpace\Visual Studio\myOpenGLSamples\OpenGLES_Example\Source.obj  1
Error   LNK2019 unresolved external symbol _main referenced in function "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ)   OpenGLES_Example    D:\WorkSpace\Visual Studio\myOpenGLSamples\OpenGLES_Example\MSVCRTD.lib(exe_main.obj)   1
Error   LNK1120 20 unresolved externals OpenGLES_Example    D:\WorkSpace\Visual Studio\myOpenGLSamples\Debug\OpenGLES_Example.exe   1

最佳答案

这些错误不是包含文件的问题,而是链接的问题。这些符号表示您缺少OpenGL ES库(glAttachShader等),以及示例代码中的某些功能(似乎来自esUtil.c)。

如果您遵循教程中的下载链接,它们将指向here。您可能会考虑仅克隆git存储库并从中进行操作。至少在这里有esUtil.h文件,您还需要将esUtil.c编译到您的项目中,因为其中缺少一些符号。

10-07 19:15
查看更多