안드로이드 NDK r4로 "프로 안드로이드 게임 개발" 예제 빌드하기
얼마 전 나온 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
디렉터리가) 필요합니다.
이 정도만 알면 코드의 실질적인 오류, 즉 컴파일 오류나 링크 오류 이전의 사소한 문제점들은 충분히 해결할 수 있을 것입니다.
예전 댓글(읽기 전용)
-
배썬, 2012-01-10 11:01 :
-
다행입니다 :)
와 책에 나온 예제 가 빌드 안되서 슬퍼 하고 있었는데 고맙습니다. 잘 돌아가네요 ㅎㅎ