안드로이드 NDK r4로 "프로 안드로이드 게임 개발" 예제 빌드하기

Twitter icon류광, 2010-06-06 17:06
얼마 전 나온 NDK r4로 "프로 안드로이드 게임 개발" 예제들을 빌드하는 방법을 설명하고, 새로운 ndk-build 명령도 간단하게 소개합니다.

저번 달(2010년 5월)에 NDK r4가 나왔습니다.

http://developer.android.com/sdk/ndk/index.html

주목할만한 변화는 ndk-build라는 빌드 명령이 추가된 것인데요. 이제는 NDK 루트 이외의 디렉터리에서, 특히 개별 프로젝트 디렉터리 자체에서 네이티브 코드를 빌드할 수 있게 되었습니다.

프로 안드로이드 게임 개발의 예제들을 NDK r4로 빌드하는 방법을 간단하게만 정리해 보겠습니다.

우선 해야 할 일: 제5장 OpenGL 예제의 cuberenderer.c에 오류가 하나 있는데 ndk 1.6이나 r3에서는 그냥 경고로 넘어갔지만 r4에서는 오류로 간주되어서 컴파일이 실패합니다.

jni/cuberenderer.c의 24행

#include <EGL/egl.h>

을 삭제하거나 다음처럼 주석으로 처리하면 됩니다.

//#include <EGL/egl.h>

기존 make APP= 방법을 그대로 사용

r4에ndk-build라는 새 명령이 도입되긴 했지만 기존의 make APP=도 여전히 작동합니다. 유일한 차이는 NDK r4의 루트 디렉터리(이하 ndk-r4 디렉터리)에 apps라는 디렉터리가 미리 만들어져 있지 않다는 것 뿐입니다.

ndk-r4 디렉터리에 apps라는 하위 디렉터리를 직접 만든 후 부록 A와 B에 나온 절차를 그대로 적용하면 됩니다. 부록 A와 B를 이미 따라한 독자라면 NDK r3의 apps 디렉터리를 그냥 통채로 ndk-r4에 복사해도 되겠고요.

새로운 ndk-build 사용

(이 글 끝의 "ndk-build에 대해 좀 더"를 먼저 읽으셔도 좋습니다.)

부록 A, B를 아직 따라하지 않은 독자라면 make APP= 를 실행하기 직전 단계까지 따라하세요. apps 폴더에 프로젝트를 복사할 필요는 없습니다.

그리고 Cygwin에서 nkd-build 명령을 어디에서나 실행할 수 있게 설정해 두어야 합니다(export PATH= 등).

이제 Cygwin 셸에서 프로젝트 디렉터리(보통의 경우 AndroidManifest.xml 파일과 jni 하위 디렉터리가 있는 디렉터리)로 가서 그냥

$ ndk-build

를 실행하면 됩니다.

다음처럼 특정 디렉터리를 직접 지정하는 것도 가능합니다.

$ ndk-build -C $WORKSPACE/wolf3d

ndk-build에 대해 좀 더

ndk-build는 현재 디렉터리(또는 -C 옵션으로 지정된 디렉터리)에서 AndroidManifest.xml를 찾습니다. 그 파일이 있으면 현재 디렉터리를 유효한 안드로이드 프로젝트 디렉터리라고 간주하고, 그 디렉터리의jni 디렉터리로 들어가서 거기에 있는 Android.mk에 의거해서 빌드를 진행합니다(GNU make로). 그것 뿐입니다.

위의 과정에서 보듯이, r3까지 쓰이던 Application.mk는 이제 필요가 없습니다. 물론 NDK 루트에서 make APP=를 실행하는 방식을 사용하려면 여전히 Application.mk가(그리고 apps 디렉터리가) 필요합니다.

이 정도만 알면 코드의 실질적인 오류, 즉 컴파일 오류나 링크 오류 이전의 사소한 문제점들은 충분히 해결할 수 있을 것입니다.

태그: 프로그래밍 번역서 안드로이드
comments powered by Disqus

예전 댓글(읽기 전용)