OpenGL,使用Android NDK错误构建

OpenGL,使用Android NDK错误构建,android,c++,c,opengl-es,android-ndk,Android,C++,C,Opengl Es,Android Ndk,我正在为Android构建一个3d模型查看器应用程序。该模型的显示和查看是通过OpenGL用C++编写的,我使用Android NDK来与Android应用程序进行网格化。但是,当我尝试部署应用程序时,会遇到许多处理OpenGL代码的错误,例如: /Users/Preddy/Downloads/9781119975915/SDK/_chapter3-2/Android//jni/../../../common/GLES2/gl2.h:501: error: expected constructo

我正在为Android构建一个3d模型查看器应用程序。该模型的显示和查看是通过OpenGL用C++编写的,我使用Android NDK来与Android应用程序进行网格化。但是,当我尝试部署应用程序时,会遇到许多处理OpenGL代码的错误,例如:

/Users/Preddy/Downloads/9781119975915/SDK/_chapter3-2/Android//jni/../../../common/GLES2/gl2.h:501: error: expected constructor, destructor, or type conversion before 'void'
/Users/Preddy/Downloads/9781119975915/SDK/_chapter3-2/Android//jni/../../../common/GLES2/gl2.h:502: error: expected constructor, destructor, or type conversion before 'void'
/Users/Preddy/Downloads/9781119975915/SDK/_chapter3-2/Android//jni/../../../common/GLES2/gl2.h:503: error: expected constructor, destructor, or type conversion before 'void'
/Users/Preddy/Downloads/9781119975915/SDK/_chapter3-2/Android//jni/../../../common/GLES2/gl2.h:504: error: expected constructor, destructor, or type conversion before 'void'
/Users/Preddy/Downloads/9781119975915/SDK/_chapter3-2/Android//jni/../../../common/GLES2/gl2.h:505: error: expected constructor, destructor, or type conversion before 'void'
而且:

/Users/Preddy/Downloads/9781119975915/SDK/_chapter3-2/Android//jni/../../../common/gfx.cpp:66: error: 'glFrontFace' was not declared in this scope
/Users/Preddy/Downloads/9781119975915/SDK/_chapter3-2/Android//jni/../../../common/gfx.cpp:67: error: 'glClearStencil' was not declared in this scope
/Users/Preddy/Downloads/9781119975915/SDK/_chapter3-2/Android//jni/../../../common/gfx.cpp:68: error: 'glStencilMask' was not declared in this scope
/Users/Preddy/Downloads/9781119975915/SDK/_chapter3-2/Android//jni/../../../common/gfx.cpp:70: error: 'glClearColor' was not declared in this scope
/Users/Preddy/Downloads/9781119975915/SDK/_chapter3-2/Android//jni/../../../common/gfx.cpp:72: error: 'glClear' was not declared in this scope
/Users/Preddy/Downloads/9781119975915/SDK/_chapter3-2/Android//jni/../../../common/gfx.cpp:76: error: 'glBindVertexArrayOES' was not declared in this scope
/Users/Preddy/Downloads/9781119975915/SDK/_chapter3-2/Android//jni/../../../common/gfx.cpp:76: error: 'PFNGLBINDVERTEXARRAYOESPROC' was not declared in this scope
/Users/Preddy/Downloads/9781119975915/SDK/_chapter3-2/Android//jni/../../../common/gfx.cpp:76: error: expected ';' before 'eglGetProcAddress'
/Users/Preddy/Downloads/9781119975915/SDK/_chapter3-2/Android//jni/../../../common/gfx.cpp:77: error: 'glGenVertexArraysOES' was not declared in this scope
/Users/Preddy/Downloads/9781119975915/SDK/_chapter3-2/Android//jni/../../../common/gfx.cpp:77: error: 'PFNGLGENVERTEXARRAYSOESPROC' was not declared in this scope
/Users/Preddy/Downloads/9781119975915/SDK/_chapter3-2/Android//jni/../../../common/gfx.cpp:77: error: expected ';' before 'eglGetProcAddress'
很明显,我的设置中缺少了一些东西。我正在使用Sequoyah编译和调试本机代码和NDK版本。r5b,因为红杉无法识别更高版本。任何建议都欢迎,我开始绝望了

编辑: Android.mk:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_ARM_MODE := arm
LOCAL_MODULE := openal
SRC_FILES := $(wildcard $(LOCAL_PATH)/../../../common/openal/*.c)
SRC_FILES := $(SRC_FILES:$(LOCAL_PATH)/%=%) 
LOCAL_SRC_FILES = $(SRC_FILES)
LOCAL_LDLIBS = -llog
LOCAL_CFLAGS := -O3 -mno-thumb
LOCAL_CPPFLAGS := -O3 -mno-thumb
include $(BUILD_SHARED_LIBRARY)


include $(CLEAR_VARS)
LOCAL_ARM_MODE := arm
LOCAL_MODULE   := templateApp
LOCAL_CFLAGS   := -O3 -mno-thumb 
LOCAL_CPPFLAGS := $(LOCAL_CFLAGS)
LOCAL_C_INCLUDES = $(LOCAL_PATH)/../../../common/openal/
SRC_FILES := $(wildcard $(LOCAL_PATH)/../../*.cpp)
SRC_FILES += $(wildcard $(LOCAL_PATH)/../../../common/*.cpp)
SRC_FILES += $(wildcard $(LOCAL_PATH)/../../../common/bullet/*.cpp)
SRC_FILES += $(wildcard $(LOCAL_PATH)/../../../common/ttf/*.cpp)
SRC_FILES += $(wildcard $(LOCAL_PATH)/../../../common/nvtristrip/*.cpp)
SRC_FILES += $(wildcard $(LOCAL_PATH)/../../../common/png/*.c)
SRC_FILES += $(wildcard $(LOCAL_PATH)/../../../common/zlib/*.c)
SRC_FILES += $(wildcard $(LOCAL_PATH)/../../../common/detour/*.cpp)
SRC_FILES += $(wildcard $(LOCAL_PATH)/../../../common/recast/*.cpp)
SRC_FILES += $(wildcard $(LOCAL_PATH)/../../../common/vorbis/*.c)
SRC_FILES := $(SRC_FILES:$(LOCAL_PATH)/%=%)
LOCAL_SRC_FILES := $(SRC_FILES)
LOCAL_SHARED_LIBRARIES := libopenal
LOCAL_LDLIBS := -L$(LOCAL_PATH)/../libs/armeabi
LOCAL_LDLIBS += -lz -lm -ldl -lGLESv2 -lEGL -llog -lopenal
LOCAL_CFLAGS := -O3 -mno-thumb -Wno-write-strings
LOCAL_CPPFLAGS := -O3 -mno-thumb -Wno-write-strings
include $(BUILD_SHARED_LIBRARY)

你在你的Android.mk中有本地文件吗?=-lGLESv2-lEGL?嘿,谢谢你的评论,是的,我有,我会编辑以显示Android.mk文件只是为了确保,你的gfx.cpp中是否有gl2.h以及egl.h?