본문 바로가기
# 버그 메모장

[Solved]cocos2d-x box2d 헤더파일 추가 관련 오류

by 쁘레레레레레 2020. 1. 29.

대상 :: box2d 헤더파일 관련

 

오류 내용 :: cocos2d-x에서 box2d헤더파일 추가시 다음과 같은 오류가 나타남

C1083: 포함 파일을 열 수 없습니다. 'Box2D/Common/b2Settings.h': No such file or directory (소스 파일 컴파일 중 ..\Classes\AppDelegate.cpp)

 

상세 :: 책에서 본것과 같이 #include "Box2D/Box2D.h" 로 추가가 안되고

#include "Box2D/include/Box2D/Box2D.h" 이런식으로 해야 추가가 되는 현상

 

예상 오류 :: 포함 디렉터리 관련 오류

 

 

실험 내용 ::

사실 예전에 API나 directX관련 공부할때부터 종종 보이던 에러라서 잡는데 큰 고생은 하지 않았다.

추가 포함 디렉터리 관련으로 예상을 했고 추가를 해보니 에러가 잡혔다.

 

결과 :: 에러 잡음

 

다음과 같은 오류가 뜰 경우 본인 프로젝트 속성 - C/C++ - 추가포함디렉터리 - 

컨트롤+INSERT(명령줄 추가) - $(EngineRoot)external\Box2D\include

이 과정을 거치면 된다.

 

어디까지나 환경에 따라 위 매크로가 다를 수 있다.

그 경우 매크로 버튼을 눌러서 $(EngineRoot) 가 external폴더가 보이는 cocos2d폴더로 잡혀 있으면 된다.

 

 

에러가 나는 이유는 간단하다. 

Box2d.h 파일을 보면

<code>

#include "Box2D/Common/b2Settings.h"

#include "Box2D/Common/b2Draw.h"

#include "Box2D/Common/b2Timer.h"

</code>

 

대략 이런식으로 여러줄이 적혀있는데, 앞이 쭈욱 생략되어있다는건 기본 디렉터리가 저 폴더로 잡혀있다는것.

그럼 기본 추가 포함 디렉터리로 저 폴더를 잡아주면 된다.

 

만일 안되어있을경우 엉뚱한 프로젝트 루트에서 Box2D폴더를 찾게되는데, 없어서 에러가 난다.

 

딱히 프로젝트 디폴트는 appdelegate쪽만 살짝 건드려줬는데 이런 오류가 난다니..