2. 개요
• 기존에 있는 엔진을 이용해서, 모바일용 엔
진으로 변신시켜보자!
– DirectX + OpenGL ES
– WIN32 + __APPLE__
• 하나의 엔진 코드로 윈도우와 모바일을 모
두 처리한다. (A.K.A 슈퍼클래스)
• 변신 캐~ 삽질기를 소개한다.
10. xcode로 소스 옮기기
• 모르겠다… 도움 요청!
– 세영님과 찬호님에게 무작정 물어보기 시작!
– (연락이 두절된 차태상군은 저주하겠음!!!)
• 방법
1. 윈도우 기반에서 mac에서 돌아갈 수 있는 dll을 만들
어서 가지고 오는 방법이 있다고 함
2. xcode에서 프로젝트를 하나 생성해서, 소스코드를
추가해서, 라이브러리를 만드는 방법
• 2번 방법을 선택하기로 함.. (1번은 모르겠다!)
11. Xcode에서 라이브러리 만들기
• “cocos touch static library”라는 것으로
빈 라이브러리 프로젝트를 하나 만들었음.
• 빈 프로젝트에 무작정 소스코드를 모두 추
가하고, 용감하게 빌드 버튼을 눌렀음!
• 컴파일 에러 22878개!!!! 뙇!
• 에러 메시지는 생전 처음 보는 것들… ㅠㅠ
12.
13. 정신차리고 다시 …
• 빈 프로젝트에 다른 코드들을 포함하고 있지
않는 독립적인 코드들부터 추가해보기로 함.
(Math, Util, …)
• 조금씩 자신감이 생기면서, 연관성이 조금씩
큰 코드들을 추가해나가기 시작!
• 자신감이 완전 붙어서, Core 클래스들을 붙여
보기로 함 (OpenGL ES 관련)
– 컴파일에러 : 16758개로 증가!!!
• 근성으로 수정!!!!
• 될 때까지!!!!!
15. 대체로 이런 문제들…
• Stdlib가 아닌 window에서 많이 확장된 사용하는 확장 함수들
이 전부 에러…
– 특히, unicode를 사용하면, 어마어마하다.
– “_”가 붙어서 시작하는 함수들을 거의 사용이 불가능.
• _wtoi, _wtof, _wtol, _wfopen, _wsplitpath 등…
– _T(), _ASSERT(), _countof() 와 매크로 없음
– BYTE, DWORD, BOOL, LONG 선언 없음
– Stl의 인터페이스도 조금 다르다.
– Template 내부에서 사용할 때에는, typename으로 type을 명확히
해주어야 함.
• #include 순서에 민감하다.
• #include <opengles/opengles.h> -> #include <opengles.h>로
…
• 매크로 문법이 조금 다르다.
– #define _WT(A) L#A // __TT(줸장) == L”줸장”
– #deifne _MT(A) L## #A // __TT(줸장) == L”줸장”
16. 코드 페이지…
• 코드에 한글 문자열을 사용했을 때…
– 윈도우에서 UTF-8로 저장해서 해결~
– 하지만, mac에서는 “Text Encoding”을 Korean으로…
• XCODE에서 코드를 수정하고, 소스를 윈도우로 가
지고 오면, 코드페이지가 안 맞아서 한글도 깨지
고, 코드도 다 흐트러짐!
– 파일 형식과 Line Ending을 윈도우 환경으로 맞춰줘도
안되네?
– 그런 이유로 visualstudio에서만 코딩 -> xcode에서
는 컴파일만…gee
– (해결책에 대한 제보 부탁!!!)
17. 기타 문제점들
• C++코드 내에서 objective-C 코드를 사용한다
면, 파일형식을 “.objcpp”로 지정해주어야 한다.
• 외부라이브러리
– Zlib과 같은 외부라이브러리는 별도의 프로젝트를 만
들어서 빌드해서 링크해도 상관이 없다고 하지만, 대체
로 그냥 엔진 프로젝트에 외부라이브러리 코드를 같이
추가해서 빌드해서 사용하는 듯…
• 유니코드 변환
– MultiByteToWideChar 를 사용할 수 없으므로, 대체함
수로 만들어주어야 함.
– Mbstowcs 과 같은 함수나 iconv를 이용해서 변환을 한
다.
• SetLocal(LC_ALL, “”) 설정 주의
• iconv : linux 계열에서 사용
20. …ING
• 현재 계속 작업 중…
– 아직 추가해야 할 파일이 100개는 남았다.
• 여전히 xcode 랑 친해지지 못하고 있음.
– Xcode를 4.2로 업데이트 했더니, 이젠 xcode도 모르겠다.. ㅜㅜ;
• Mac과 Win을 오가는 2대의 작업은 정신적 피로도가 상당히 높
다.
– Mac의 키보드와 마우스를 장시간 사용하니, 손목이 돌아갈 거 같
음.
– 5시간 정도 작업하면, 점점 두 PC간의 자판배열과 마우스 조작에
혼돈이 오기 시작!
• 노트북 마우스를 쓰담~ 쓰담 하기 시작!
• 한/영 전환과 control 위치가 … -_-;;
21. 결론
• 이태리 장인의 한 땀 한 땀의 노력이 필요한 작업임
– 별로 추천해주고 싶은 작업이 아니다!
• 자료를 검색해봐도, c++을 이용한 native 개발에 대한 팁은 별
로 없던데?!
– KLDP.org 에서 리눅스 개발에 대한 팁 참조
– Stack Overflow 라는 사이트에서 많이 참조
• 오픈소스프로젝트를 참고하자
– Irricht 나 Orge3D의 경우, iOS 용으로 이미 포팅이 되어 있음.
– 프로젝트 설정 및 OpenGL ES 처리 등을 참고하면 좋다.
• 최대한 경험있는 지인들에게 도움을 요청하자!
– Xcode 환경 설정, mac에서의 처리에 대한 약간의 팁만 알려줘
도, 많은 삽질을 줄일 수 있다.
–저 좀 살려주세요! ㅜㅜ