본문 바로가기

Cocos2D & C++/Error

[Cocos2D] M1 프로젝트 생성 후 에러

1. 프로젝트 빌드하여 시뮬레이터로 실행 시 컴파일 도중 에러가 난다!

당황하지 말고 에러의 내용을 보자!

보기만해도 하나도 모르겠다!

libcocos2d Error 해당 관련 에러를 검색하고 찾아보니 간단하게 해결할 수 있을 것 같다.

 

2. 일단 첫번째로 M1에서 Rosetta(로제타)로 변경하자  

응용 프로그램에서 Xcode.app 우 클릭 후 정보 가져오기 하면 일반 분류 안에 Rosetta(로제타)를 사용하여 열기가 있으니 체크하자!

 

3. 프로젝트를 껏다가 다시 켜서 프로젝트 빌드하고 시뮬레이터로 실행 시 이번에는 "Argument value 10880 is outside the valid range [0, 255] btVector3.h 파일에서 에러난다고 한다. 확인해보면 330줄에 빨간줄이 그어져 있다.

 

 

해당 btVector3.h 파일의 42번째 줄에 보면 

#define BT_SHUFFLE(x,y,z,w) ((w)<<6 | (z)<<4 | (y)<<2 | (x))

라고 적혀있을 것이다. 해당 라인을 다음과 같이 수정하여 바꾸자!

#define BT_SHUFFLE(x,y,z,w) (((w)<<6 | (z)<<4 | (y)<<2 | (x)) & 0xff)

 

4. 이후에 실행 시 에러가 100개 이상 뜬다. Undefined symbol:cocos2d::Node::setLocalZOrder(int) 등등..

 

왼쪽 프로젝트 선택 후 TARGETS에서 mobile 선택, 이후 Build Settings를 누르면 많은 설정이 뜬다.

그 중에서 VALID_ARCHS라는 옵션을 보면 "arm64 armv7" 으로 되어 있을텐데

"x86_64 arm64 armv7"으로 변경하자

 

 

5. 그리고 실행을 해보면 또 에러가 뜬다.. 끝나지 않은 에러와의 전쟁!!

그래도 이것은 매우 간단하게 처리가 가능하다

이번에는 Build Settings가 아니라 General을 선택하면 

 

다음 사진처럼 Identity 안에 Version이 비어있을 것인데 거기에 "1.0" 넣어주고 실행해보자

 

 

다행이 문제없이 모든 에러를 해결하고 잘 작동이 된다!