本文介绍了NDK的OpenGL未定义参考glVertexPointer的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在编译下面的C code。与NDK的构建在终端(我运行Ubuntu):
的#include< jni.h>#包括LT&; GLES / gl.h>
#包括LT&; GLES / glext.h>#包括org_opengldrawinjni_DrawinJNI.h
JNIEXPORT无效JNICALL Java_org_opengldrawinjni_DrawinJNI_Draw
(JNIEnv的* envptr,jobject jobj)
{
GLfloat顶点[] =
{1.0,0.0,0.0,
1.0,1.0,0.0,
0.0,0.0,0.0
};
GLubyte指数[] = {0,1,2};
glVertexPointer(3,GL_FLOAT,0,顶点);
glDrawElements(GL_TRIANGLES,3,GL_UNSIGNED_BYTE,索引);
}
本Android.mk文件:
LOCAL_PATH:= $(叫我-DIR) 包括$(CLEAR_VARS) LOCAL_MODULE:= OpenGLJNI
LOCAL_SRC_FILES:= org_opengldrawinjni_DrawinJNI.c
LOCAL_LDLIBS:= -llog -lGLESv1_CM.so 包括$(BUILD_SHARED_LIBRARY)
我得到一个错误,未定义的引用glVertexPointer。我不知道为什么,因为我相信我适当地包括报头,并在Android.mk拉上库
<$p$p><$c$c>/home/thomas/Documents/LinuxProgramming/EclipseWorkspace/OpenGLDrawinginJNI/obj/local/armeabi/objs/OpenGLJNI/org_opengldrawinjni_DrawinJNI.o:在功能上`Java_org_opengldrawinjni_DrawinJNI_Draw:/home/thomas/Documents/LinuxProgramming/EclipseWorkspace/OpenGLDrawinginJNI/jni/org_opengldrawinjni_DrawinJNI.c:33:未定义的引用`glVertexPointer
collect2:劳工处返回1退出状态
使:*** [/home/thomas/Documents/LinuxProgramming/EclipseWorkspace/OpenGLDrawinginJNI/obj/local/armeabi/libOpenGLJNI.so]错误1
谢谢!
解决方案
我想不出什么错,但是当我检查了我的make文件有一个区别。
因为我不擅长与编译器,我不知道这是否是相关的:
LOCAL_LDLIBS:= -lGLESv1_CM -ldl -llog
Hope it helps
这篇关于NDK的OpenGL未定义参考glVertexPointer的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!