Tizen 2.2 Beta SDK가 2013년 7월 3일에 출시되었습니다.

Tizen SDK의 C++11 지원 문제

현재 Cocos2d-x는 C++11(C++0x) 스펙을 적극 활용하여 개발되고 있습니다. 그런데 여기서 문제가 발생했습니다. Tizen 2.1 SDK가 C++11을 완전히 지원하지 않았던 것입니다.

Cocos2d-x에서는 range-based for loop가 광범위하게 사용되고 있는데, 이 스펙은 GCC 4.6부터 지원합니다. Tizen SDK 2.1에는 GCC 4.5가 포함되어 있습니다. 그래서 GCC를 사용하면 컴파일이 불가합니다.

Tizen SDK에는 GCC 말고도 LLVM 컴파일러를 지원 합니다. SDK에 포함된 LLVM 3.1에서는 range-based for loop를 지원하긴 했지만, LLVM이라도 STL 라이브러리는 GCC 4.5에 포함된 것을 이용하기 때문에 mutex를 사용한 부분이 컴파일이 되지 않는 문제가 있었습니다.

Tizen과 관련하여 저에게 도움을 많이 주고 있는 Sergey Shambir씨께서 Tizen 이슈 트래커에 No proper c++11 support available 이슈를 등록해 주셨습니다만, 답변도 없고 아직 지지부진한 상황입니다.

Tizen App Challlenge가 계속 연기가 되고 있었는데, 7월 초에 2.2 SDK 출시와 함께 앱 챌린지 콘테스트를 진행하겠다는 공지가 올라왔습니다. 2.2 SDK에는 C++11 지원 문제가 해결되지 않았을까 하는 일말의 기대를 품고 출시가 될 때까지 기다리기로 했습니다.

어제 2.2 SDK를 받아서 컴파일 및 테스트를 해본 결과 GCC, LLVM 버전이 2.1과 동일하여, 안타깝께도 컴파일 문제는 해결되지 않았습니다.

Cocos2d-x 진행 상황

어쩔 수 없이 C++11 스펙을 사용하지 않는 master 브랜치를 기반으로 2.2 SDK 대응을 하여 Pull Request를 했습니다만, develop 브랜치가 master 브랜치로 머지될 예정이기 때문에, 이번 Pull Request는 적용되지 못했습니다.

develop 브랜치를 기반으로 계속 대응을 해야하는 상황인데, 컴파일 문제가 빠른 시일내에 해결될 것 같지않아 보입니다. 문제가 해결 될 때 까지 저의 Cocos2d-x 저장소에 develop 브랜치의 2.2 SDK 대응 코드를 계속 올리도록 하겠습니다.


저작권 안내

이 웹사이트에 게시된 모든 글의 무단 복제 및 도용을 금지합니다.
  • 블로그, 게시판 등에 퍼가는 것을 금지합니다.
  • 비공개 포스트에 퍼가는 것을 금지합니다.
  • 글 내용, 그림을 발췌 및 요약하는 것을 금지합니다.
  • 링크 및 SNS 공유는 허용합니다.

Published

06 July 2013