2010-11-19 3 views
3

При компиляции следующего кода C с НДК-сборки в терминале (я бегу Ubuntu):NDK OpenGL неопределенная ссылка на glVertexPointer

#include <jni.h> 

#include <GLES/gl.h> 
#include <GLES/glext.h> 

#include "org_opengldrawinjni_DrawinJNI.h" 


JNIEXPORT void JNICALL Java_org_opengldrawinjni_DrawinJNI_Draw 
    (JNIEnv *envptr, jobject jobj) 
{ 
GLfloat vertices[] = 
    { 1.0, 0.0, 0.0, 
    1.0, 1.0, 0.0, 
    0.0, 0.0, 0.0 
    }; 
GLubyte indices[] = { 0, 1, 2 }; 
glVertexPointer(3, GL_FLOAT, 0, vertices); 
glDrawElements(GL_TRIANGLES, 3, GL_UNSIGNED_BYTE, indices); 
} 

с этим Android.mk файла:

LOCAL_PATH := $(call my-dir) 

    include $(CLEAR_VARS) 

    LOCAL_MODULE := OpenGLJNI 
    LOCAL_SRC_FILES := org_opengldrawinjni_DrawinJNI.c 
    LOCAL_LDLIBS := -llog -lGLESv1_CM.so 

    include $(BUILD_SHARED_LIBRARY) 

Я получаю сообщение об ошибке, неопределенную ссылку на glVertexPointer. Мне интересно, почему, я считаю, что правильно включил заголовки и связал библиотеки в Android.mk

/home/thomas/Documents/LinuxProgramming/EclipseWorkspace/OpenGLDrawinginJNI/obj/local/armeabi/objs/OpenGLJNI/org_opengldrawinjni_DrawinJNI.o: In function `Java_org_opengldrawinjni_DrawinJNI_Draw': 
/home/thomas/Documents/LinuxProgramming/EclipseWorkspace/OpenGLDrawinginJNI/jni/org_opengldrawinjni_DrawinJNI.c:33: undefined reference to `glVertexPointer' 
collect2: ld returned 1 exit status 
make: *** [/home/thomas/Documents/LinuxProgramming/EclipseWorkspace/OpenGLDrawinginJNI/obj/local/armeabi/libOpenGLJNI.so] Error 1 

Спасибо!

ответ

7

Я не могу придумать ничего плохого, но когда я проверил свой файл, есть одно отличие. Поскольку я не очень хорошо с составителями я не знаю, если это уместно:

LOCAL_LDLIBS := -lGLESv1_CM -ldl -llog

Динамическая Linker Библиотека:

доступен и может быть использован использовать dlopen ()/dlsym()/dlclose() функции, предоставляемые динамическим компоновщиком Android . Вам нужно будет связать против /system/lib/libdl.so с:

LOCAL_LDLIBS: = -ldl

Надеется, что это помогает

+0

Оно не работе для меня. Я все-таки делаю то же самое, что и результат и ошибка. –

 Смежные вопросы

  • Нет связанных вопросов^_^