2017-09-18 77 views
1

我正嘗試使用NDK創建應用程序。我使用的是ndk-build,因爲我還在使用一些尚不支持CMake的外部庫。這是Android.mk相關線路:在使用OpenGL ES 3功能時在Android上發生分段錯誤

LOCAL_LDLIBS := -lEGL -lGLESv3 

一切構建(編譯和鏈接)就好了,但是當我嘗試使用從OpenGL ES的函數3.0+(如glGenVertexArrays),我得到一個分段錯誤。

當我看到進入調試器,不過,我看到:

enter image description here

因此,它是連接對libGLESv1_CM.so的原因,我不明白。

此外,在我的頭文件中,我有#include <GLES3/gl3.h>,我的設備支持OpenGL ES 3.2(我也看到了/system/lib/上的libGLESv3.so文件)。

我可能會錯過什麼?

+0

glBindBuffer由ES 1.1定義。我不會爲此擔心。 – Andreas

+0

來自opengl的運行時段錯誤通常是由於壞指針造成的。你確定你在glGenVertexArrays中發送了好的指針,也就是預先分配的內存大小爲n * GLuint的地址? – Andreas

+0

完全確定。而且,你可以看到函數指針被設置爲NULL。 –

回答

0

我使用的外部庫包含源gl3stub.c,大概是爲了支持較老的OpenGL ES規範。這無效了指向新API的指針。刪除此源並重新編譯外部庫解決了此問題。

相關問題