ios환경 cocos2d-x helloworld 프로젝트를 넘어 개발 프로젝트 빌드 및 실행

기존 포스팅에서 작업하던 프로젝트에 ios용 helloworld 프로젝트를 추가했었습니다. 이번에는 ios에 제대로 된 프로젝트를 추가해서 빌드해볼려고 합니다.

최종 완성본 스샷을 먼저 보여드립니다. 위 스샷을 참고하시면서 아래 내용을 보시면 됩니다.

먼저 cocos2d-x관련 파일이 들어있는 libs를 추가하고 Classes에 작업했던 소스들을 넣어 프로젝트에 추가합니다. 제가 win32에서 작업했던 Framework lib는 위 스샷에서 어쩌구 Feature라는 4개의 폴더입니다. 추후엔 lib로 만들어서 추가하겠지만 지금은 빌드를 위해 일단 소스를 바로 추가해줍니다.

다음으로 Resources 폴더에 자동으로 생성 된 Helloworld관련 파일들을 지우고 기존에 있던 파일들을 Xcode 프로젝트 네비게이터의 Resources에 추가합니다.

그리고 빌드를 하면,

Unknown type name 'NS_CC_EXT_BEGIN'
Unknown type name 'NS_CC_EXT_END'

Expected unqualified-id

_types.h에 있는 
#ifdef __GNUC__
typedef __signed char __int8_t;

'curl/curl.h' file not found

Undefined symbols for architecture i386:
  "_curl_easy_setopt", referenced from:
  "_curl_easy_cleanup", referenced from:
  "_curl_easy_init", referenced from:
  "_curl_easy_perform", referenced from:
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

위 스샷과 내용처럼 빌드 에러가 발생합니다. curl 이외의 에러는 좀 의외인데요, Windows7에서 작업시 win32와 android모두 이상없이 빌드 했던 건데 말이죠. 샘플의 tests와 제가 만든 프로젝트의 Build Settings가 내용은 비슷한 듯 하지만 레이아웃이 좀 많이 다르던데 여기서 생긴 문제인지는 모르겠네요. 일단  CCControlDefine.h에


#include "CCPlatformMacros.h"
위와 같이 CCPlatformMacros.h를 추가해줬습니다.


그리고 libcurl.a를 cocos2dx/platform/third_party/ios에서 찾아 넣고

Header Search Paths부분은 위 스샷과 같이 추가 변경해 줬습니다. 그리고 실행을 했더니

NSString* fullpath = [[NSBundle mainBundlepathForResource:file ofType:nil  inDirectory:imageDirectory];

ccbi를 읽어들이는 부분에서 위의 bundle path를 제대로 못 가져오더군요. 이 부분은 따로 정리를 해놨으니 Xcode에서 Resources 폴더 구조 관리에 관한 포스팅을 참고하시기 바랍니다.

제대로 추가했다면 위와같이 폴더는 파란색으로 보일 것입니다. 그리고 실행하면 멋지게 개발중인 게임의 화면을 볼 수 있을거에요.

댓글

이 블로그의 인기 게시물

'xxx.exe' 프로그램을 시작할 수 없습니다. 지정된 파일을 찾을 수 없습니다.

goorm IDE에서 node.js 프로젝트로 Hello World Simple Server 만들어 띄워보기

애드센스 수익을 웨스턴 유니온으로 수표대신 현금으로 지급 받아보자.