缺少动态库,添加D:\android-ndk-r19c\toolchains\llvm\prebuilt\windows-x86_64\sysroot\usr\lib\aarch64-linux-android\28\libGLESv3.so
在gl2中使用glActiveShaderProgram需要用glActiveShaderProgramEXT,这个函数应该特殊的动态库文件中(可能是某个厂商的实现库中),肯定不在libGLESv2.so和libGLESv3.so中。
通过下面可知,glActiveShaderProgram已经包含在gl3中了,可以添加libGLESv3.so库,直接使用glActiveShaderProgram,而不是使用glActiveShaderProgramEXT。
According to the Khronos OpenGL ES Registry, the extension header for GLES 3.0 is actually <GLES2/gl2ext.h>. gl3ext.h should be empty and provided only for legacy compatibility. Thus, if you want to include GLES 3.0 headers, you should do:
#include <GLES3/gl3.h>
#include <GLES2/gl2ext.h>
gl3ext.h的内容,为空
#ifndef __gl3ext_h_
#define __gl3ext_h_
/* $Revision: 17809 $ on $Date:: 2012-05-14 08:03:36 -0700 #$ */
/*
* This document is licensed under the SGI Free Software B License Version
* 2.0. For details, see http:

解决C++编程中遇到的链接错误,未定义引用'glActiveShaderProgramEXT'。问题出在缺少动态库,需添加libGLESv3.so。在GL ES 3.0中,可以使用glActiveShaderProgram代替glActiveShaderProgramEXT,直接包含<GLES3/gl3.h>和<GLES2/gl2ext.h>头文件。
最低0.47元/天 解锁文章
2868

被折叠的 条评论
为什么被折叠?



