이제 Openroid ES를 Android에서 배우기 시작했습니다. (this book 사용) source 코드를 5 장에서 채택하여 안드로이드에서 jni를 사용하는 기존 방법에 대해 설명했습니다. 단순히 기본 GL 응용 프로그램을 실행하는 것에 대한 우려). .so lib 디렉토리를 얻고 .apk 아카이브에서 더 많이 사용하기 위해 원시 코드를 컴파일하려고합니다. 그러나 특정 libs (GLES/gl.h, EGL/egl.h, GLES/gl.h, GLES/glext.h)가없는 경우 컴파일이 불가능합니다.OpenGL ES를 설치하고 android 용 코드를 컴파일
그래서 libs (AFAIU, OpenGL ES 및 EGL 설치)를 설치하고 가장 간단한 네이티브 코드를 컴파일하려면 어떻게해야합니까? (자습서는 매우 존경 받는다).
미리 감사드립니다.
편집 : 제안 된 (약간 변경된 .mk 파일) 예제와 마찬가지로 시도했지만 성공하지 못했습니다.
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <GLES/gl.h>
#define FIXED_ONE 0x10000
#define one 1.0f
typedef unsigned char byte;
extern void jni_printf(char *format, ...);
// Cube static
GLfloat vertices[24] = { -one, -one, -one, one, -one,
-one, one, one, -one, -one, one, -one, -one, -one, one, one, -one, one, one, one, one, -one, one, one, };
static GLfloat colors[] = { 0, 0, 0, one, one, 0, 0, one, one, one, 0, one, 0, one, 0> , one, 0, 0, one, one, one, 0, one, one, one, one, one, one, 0, one, one, one, };
static byte indices[] = { 0, 4, 5, 0, 5, 1, 1, 5, 6, 1, 6, 2, 2, 6, 7, 2, 7, 3, 3, 7, 4, 3, 4, 0, 4, 7, 6, 4, 6, 5, 3, 0, 1, 3, 1, 2 };
void Cube_draw() {
glFrontFace(GL_CW);
glVertexPointer(3, GL_FLOAT, 0, vertices);
glColorPointer(4, GL_FLOAT, 0 , colors);
glDrawElements(GL_TRIANGLES, 36, GL_UNSIGNED_BYTE, indices); }
그것은 굉장히 사소한 아직 작동하지 :
여기ndk-build
Compile thumb: egl <= cube.c
/path/jni/cube.c:5:21: error: GLES/gl.h: No such file or directory // same message for glbuffer when gl.h is being included
가 cube.c 코드 : 컴파일러는 이전과 나에게 같은 결과를 제공합니다.
Android.mk :
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_LDLIBS := -lGLESv1_CM.so
LOCAL_MODULE := egl
LOCAL_SRC_FILES := cube.c cuberenderer.c
include $(BUILD_SHARED_LIBRARY)
나는 그 책을 통해 flicked하고 그것은 네이티브 코드를 사용하여 날 내려 놨어. 시험해 보려 할 때 샘플 소스를 살펴보고 샘플 .mk 파일을 가져 와서 몇 가지 이름을 바꿨다. 이 책은 아무 이유없이 어리석게 복잡합니까? 아니면 최신 NDK가 출시되기 전에 그렇게해야합니까? –
@ 폴디, 복잡한 것은 아니며, 단지 두 번 수정해야합니다. 그보다 조금 구식이 아니기 때문에 빠른 학습을 위해 많은 정보가 필요하다는 것을 알기는하지만 유용합니다. 예제는 변경 사항과 함께 잘 작동하지만 GL에 왔을 때 컴파일 할 수 없습니다. 자바 부분이 잘 작동합니다. –