【发布时间】:2017-11-11 15:36:04
【问题描述】:
我使用的是 Visual Studio Community 2017,但此版本中的原生活动与 Visual Studio Community 2015 中的相同。
我刚刚在 Visual Studio 2017 中创建了一个新的本机活动项目,使用与此项目选项一起加载的默认程序。但是,每当我尝试使用专用于打开 gl es 2 的函数时,Visual Studio 都会针对我使用的每个打开的 gl es 2 函数返回一个错误,例如“错误:未定义对‘glCreateShader’的引用”。奇怪的是,即使我删除了 pch 文件中包含 open gl es 1 的行,以下代码仍然有效:
glClearColor(200, 200, 200, 1);
glClear(GL_COLOR_BUFFER_BIT);
如果将以下函数放入默认的原生活动项目中(即使在包含 GLES2/gl2.h、GLES2/gl2ext.h 和 GLES2/gl2platform.h 之后)会导致上述错误:
int prepareShader(GLuint shaderType, const char * shaderCode) {
GLuint shader = glCreateShader(shaderType);
int len = strlen(shaderCode);
glShaderSource(shader, 1, &shaderCode, &len);
}
我记得在 Android Studio 中发生过类似的错误,通过在 cmakelists.txt 中添加以下内容已修复:
find_library(gl-lib
GLESv2 )
find_library(egl-lib
EGL )
target_link_libraries( # Specifies the target library.
native-lib
${egl-lib}
${gl-lib})
但是,我的 Visual Studio 项目不使用 CMake。
谁能告诉我如何在 Visual Studio 2017 中成功使用 open gles 2?
【问题讨论】:
标签: android c opengl-es-2.0 native-activity