gpt4 book ai didi

android - NDK OpenGL 未定义对 glVertexPointer 的引用

转载 作者:太空宇宙 更新时间:2023-11-03 12:25:03 24 4
gpt4 key购买 nike

在终端中使用 ndk-build 编译以下 C 代码时(我正在运行 Ubuntu):

#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 的 undefined reference 。我想知道为什么,因为我相信我正确地包含了 header 并链接了 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

谢谢!

最佳答案

我想不出有什么不对,但当我检查我的 make 文件时,发现有一处不同。由于我不擅长编译器,所以我不知道它是否相关:

LOCAL_LDLIBS := -lGLESv1_CM -ldl -llog

Dynamic Linker Library:

is available and can be used to use the dlopen()/dlsym()/dlclose() functions provided by the Android dynamic linker. You will need to link against /system/lib/libdl.so with:

LOCAL_LDLIBS := -ldl

希望对你有帮助

关于android - NDK OpenGL 未定义对 glVertexPointer 的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4221539/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com