PC 프로그램 개발은 개발 환경과 실행 환경이 같다. 하지만 모바일 앱은 개발을 PC(맥 포함)에서 하지만 실행 환경은 모바일 기기다. 즉, 프로그램이 PC 에뮬레이터 상에서 정상적으로 작동한다고 해도 모바일 기기에서는 그렇지 않을 수 있다. 기기 디버깅이 반드시 필요한 이유다.


타겟 디바이스가 iOS 기기라면 디버깅에 Xcode를 그대로 사용하면 된다. 하지만 안드로이드 기기에서는 상대적으로 디버깅이 어려운 이클립스(eclipse) 또는 커맨드라인 도구(Command Line Tool)를 이용할 수 밖에 없다. 이에 안드로이드 기기 디버깅 방법을 총 세 편의 포스트를 통해 알아보겠다.


이에 앞서 Cocos2d-x 설치 시 함께 제공되는 스크립트(create-android-project.sh)를 이용해서 기본 프로젝트를 만든다. 프로젝트 이름은 “Cocos2dxTest”로 한다. 참고로 현재 Cocos2d-x 최신 버젼은 2013년 1월 28일에 릴리즈된 버젼 2.1.1이다.


<그림1> Cocos2d-x 안드로이드 프로젝트 생성


이 포스트는 연재의 첫번째 편으로 이클립스 LogCat 창에 로그를 찍는 방법을 알아보겠다. Xcode에서는 C++ 소스 코드에서 CCLog 메서드를 호출해서 콘솔 창에 로그를 출력한다. 이클립스에서도 같은 방법으로 콘솔 창에 로그를 출력할 수 있다.

/cocos2dxTest/Classes/HelloWorldScene.cpp 파일의 HelloWorld:scene() 메서드에 다음 코드를 입력한다.


CCLog(“start HelloWorld scene!”); 


만약 CDT 플러그인을 설치했다면 <그림2>와 같이 이클립스에서 바로 C++ 코드를 편집할 수 있다.

<그림2> 프로그램 소스에서 CCLog 메서드 호출


다음으로 프로젝트를 디버깅 모드로 실행한 뒤, 퍼스펙티브 창을 DDMS로 변경한다.


<그림3> DDMS 선택


<그림4>와 같이 LogCat 창에 “start HelloWorld scene!”이라는 로그가 출력된다.


<그림4> LogCat에 로그 출력


LogCat은 원하는 종류의 로그만 화면에 표시하는 기능인 필터를 지원한다. 만약 cocos2d-x라는 필터가 없다면 새로 만든다. LogCat 좌상단에 있는 녹색 ‘+’ 버튼을 클릭하면 “LogCat Message Filter Settings” 라는 창이 뜬다. 여기서 Filter Name: 에 ‘cocos2d-x’를 입력하고, by Log Tag: 에는 ‘cocos2d-x debug info’라고 입력한다.


<그림5> LogCat 필터 생성

저작자 표시
신고
Creative Commons License
Posted by 가리봉맨

  지난 포스트에서는 이클립스에  C++ 소스 파일 및 플러그인을 추가하고 통합 빌드하는 하는 부분을 다뤘다. 이어서 C++ 소스 파일에 표시되는 경고를 사라지게 함으로써 이클립스에서 C++ 파일을 편집할 수 있도록 해보겠다. 


  jni/helloworld/main.cpp 파일을 열어보면 아래 사진과 같이 경고가 표시되는 것을 볼 수 있다. 이것은 C++ include 파일들의 경로를 제대로 설정해 주지 않아서 나타나는 현상이다. 



  Package Explorer에서 프로젝트를 선택한 뒤 마우스 오른쪽 버튼을 누르고 Properties를 선택한 뒤, C/C++ General -> Path and Symbols -> GNU C++  선택한다. 그리고 아래 두 개의 경로를 추가해 준다.


 $(NDKROOT)/platforms/android-9/arch-arm/usr/include 

 $(COCOS2DX_HOME)/cocos2dx/include


  여기서 $(NDKROOT)와 $(COCOS2DX_HOME)는 각자 실제 디렉토리의 절대 경로로 바꿔줘야 한다. 여기까지 하면 아래와 같이 상당 부분 경고 표시가 사라진다.


  이제 게임 소스에 해당하는 디렉토리 (/Classes)의 경로를 추가해 줘야 한다. 역시 Properties 창을 열고, C/C++ General -> Path and Symbols -> Soruce Location 을 선택한다. 그리고 Link Floder.. 버튼을 누른 다. 그 다음 Link to folder in the file system 을 체크해 주고 Browse 버튼을 눌러서 프로젝트 홈 디렉토리 아래에 있는 /Classes 디렉토리를 선택해 준다.


  여기까지 하면 대부분의 경고 표시가 없어진다. 그래도 남아있는 부분은 C++ Code Analysis 설정을 수정해서 제거하도록 한다. 아래 그림과 같이 Properties -> C/C++ General -> Code Analysis 에서 Syntax and Sematic Errors 항목의 체크를 없애준다.



  C++ 소스 상의 경고 메시지들이 모두 사라진 것을 확인할 수 있다. 이제 이클립스에서도 C++ 소스 파일들을 자유롭게 편집하고 빌드할 수 있게 됐다. 끝.



참고사이트:

http://cocos2d-x.org/

http://www.raywenderlich.com/11283/cocos2d-x-for-ios-and-android-getting-started 

저작자 표시
신고
Creative Commons License
Posted by 가리봉맨

  Cocos2d-x 안드로이드 빌드를 하기 위해서는 두 가지 과정을 거쳐야 한다. 먼저 콘솔에서 c++ 파일들을 빌드하고 그 다음 이클립스에서 JAVA 파일들을 빌드해야 한다. 그런데 이클립스에 플러그인 하나만 설치하면 두 가지 과정을 이클립스에서 한 번에 처리할 수 있다. 또, 이클립스에서 직접 c++ 파일을 편집할 수도 있다.


  그 플러그인이 뭐냐하면 바로 CDT(C/C++ Development Tools) 이다. 해당 플러그인을 설치하기 위해 이클립스 메뉴에서 Help -> Install New Software 를 선택한다. 그리고 work with: 란 옆의 콤보 박스에서 "Indigo - http://download.eclipse.org/releases/indigo" 를 선택한다. 이클립스 버젼이 Indigo가 아니라면 해당 버젼에 맞게 선택해 주면 된다.


  다음으로 programming Languages 카테고리를 선택한 뒤, C/C++ Development Tools 에 체크해 준다. 그리고 Next를 누르고 안내에 따라 설치를 하면 된다.


  

  이제 기존 프로젝트에 C/C++ 프로젝트를 결합하는 일이 남아 있다. 해당 프로젝트를 선택한 뒤, 이클립스 메뉴의 File -> New -> Other에서 C/C++\Convert to a C/C++ Project(Adds C/C++ Nature) 를 선택한다.




  Next 버튼을 누르면 아래와 같은 창이 뜬다. Candidates for conversion: 에서 해당 프로젝트를 선택한 뒤, Project  type:은 "Makefile project"를 선택하고 Toolchains:는 기본 값인 -- Other Toolchain -- 를 선택해 준다.



  Finish 버튼을 누르면 창이 하나 더 뜬다. 이클립스에서 퍼스펙티브(Perspective)란 작업의 종류에 따라 뷰와 에디터가 배치된 세트를 의미한다. 기본적인 안드로이드 관련 셋팅만 해 놓은 상태라면 이클립스 우상단에 Debug, DDMS, Java 퍼스펙티브가 있을 것이다. 여기에 C/C++ 퍼스펙티브를 추가할 것이지 여부를 뭍는 것이다. 일단 No를 선택한다.




  이제 C++ 파일 컴파일을 위한 리눅스 make 명령 실행에 대한 프로젝트 설정을 변경해 줘야 한다.  Package Explorer에서 프로젝트를 선택한 뒤 마우스 오른쪽 버튼을 누르고 제일 아래에 있는 Properties를 선택한 뒤, C/C++ Build 메뉴를 선택한다. 


  다음으로 "Use default build command" 체크박스를 해제한 뒤 Build command: 란을 아래와 같이 채워 준다. "samplecocos2dxandroid" 부분은 각자의 프로젝트명에 맞게 변경해 주면 된다. 이렇게 하면 전에는 콘솔에서 직접 입력하던 build_native.sh 스크립트를 이클립스가 실행해 주게 된다. 참고로 끝에 붙은 'V=1" 옵션은 빌드 명령이 콘솔 화면에 표시되도록 해 주는 역할을 한다.


 bash ${workspace_loc:/samplecocos2dxandroid}/build_native.sh NDK_DEBUG=1 V=1 


  마지막으로 NDK가 설치된 경로를 이클립스에 알려주는 작엄을 해야 한다. 다시 Properties 창을 열고 C/C++ Build 를 더블 클릭해서 하위 메뉴를 펼쳐준다. 여기서 Enviornment를 선택한다. 그리고 Add 버튼을 누르고 NDK_ROOT란 키 값과 다음과 같이 NDK가 설치된 경로를 넣어 준다. 


 /Users/NokNokMobile/Documents/_dev/android-ndk-r7-crystax-5.beta2 




  여기까지 하고 이클립스 메뉴에서 Project -> Build All 을 하면 이클립스 Console 창에 빌드 과정이 찍히면서 C++ 파일들이 정상적으로 빌드되는 것을 확인할 수 있다. 



  하지만 아직 완전히 끝난 것이 아니다. 빌드는 되지만 C++ 파일들에 몇 가지 warnings이 남아 있다. 이 부분에 대한 처리는 다음 편에 계속 하도록 하겠다.



참고 사이트:

http://cocos2d-x.org/

http://www.raywenderlich.com/11283/cocos2d-x-for-ios-and-android-getting-started 

http://stackoverflow.com/questions/12594854/cocos2dx-specific-libraries-cannot-be-resolved-after-creating-android-project-fr

http://okjsp.tistory.com/1165643087

저작자 표시
신고
Creative Commons License
Posted by 가리봉맨


티스토리 툴바