在学习了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编译到您的项目中,因为其中缺少一些符号。