在使用OpenGL ES 3功能时在Android上发生分段错误
问题描述:
我正尝试使用NDK创建应用程序。我使用的是ndk-build,因为我还在使用一些尚不支持CMake的外部库。这是Android.mk相关线路:在使用OpenGL ES 3功能时在Android上发生分段错误
LOCAL_LDLIBS := -lEGL -lGLESv3
一切构建(编译和链接)就好了,但是当我尝试使用从OpenGL ES的函数3.0+(如glGenVertexArrays
),我得到一个分段错误。
当我看到进入调试器,不过,我看到:
因此,它是连接对libGLESv1_CM.so
的原因,我不明白。
此外,在我的头文件中,我有#include <GLES3/gl3.h>
,我的设备支持OpenGL ES 3.2(我也看到了/system/lib/
上的libGLESv3.so
文件)。
我可能会错过什么?
glBindBuffer由ES 1.1定义。我不会为此担心。 – Andreas
来自opengl的运行时段错误通常是由于坏指针造成的。你确定你在glGenVertexArrays中发送了好的指针,也就是预先分配的内存大小为n * GLuint的地址? – Andreas
完全确定。而且,你可以看到函数指针被设置为NULL。 –