C++学习(二九九)undefined reference to `glActiveShaderProgramEXT‘

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

缺少动态库,添加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:
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值