2013年2月16日土曜日

【cocos2d】ビルドエラー「Lexical or Preprocessor ‘cassert’ file not found」が出たときの対処方法

cocos2dでBox2Dを使用していて「Lexical or Preprocessor‘cassert’file not found」というビルドエラーが出たのでその対処方法をメモで。

問題の箇所は以下の部分です。

b2Settings.h

#ifndef B2_SETTINGS_H
#define B2_SETTINGS_H

#include <cassert>  //ここの部分でエラー!
#include <cmath>

原因と対処

cocos2dでBox2Dを使う場合はObjective-C++を用いるため、実装ファイルの拡張子は".mm"にする決まりがあります。
Box2Dを実装したクラスに"他のクラス"をインポートする場合は、その"他のクラス"の実装ファイルの拡張子も同様に".mm"になっていないといけないようです。

分かりにくいと思うので、例えば、クラスA(Box2D実装)にクラスBをインポートする場合、それぞれの実装ファイルの拡張子は".mm"になっていないといけないということです。

参考記事

エラー – Lexical or Preprocessor‘cassert’file not found - Learn iPhone, iOS, Objective-c, cocos2d and ….?

0 件のコメント:

コメントを投稿