7

Box2dでcocos2dテンプレートを使用していますが、プロジェクトにBox2d.hをインポートすると、エラーcassertフィールドが見つかりません。cocos2dバージョン2.0を使用しています。助けてください。

4

5 に答える 5

24

プロジェクトのすべてのソースコードファイルのファイル拡張子が.mではなく.mmであることを確認してください。または、各.mファイルのタイプをObjective-C++に設定します。

于 2012-08-24T11:55:40.553 に答える
1

ファイル拡張子を変更します。mmそれだけです

于 2012-10-31T07:52:04.777 に答える
0

xcode4で拡張子を変更しても機能しません。代わりに、ビルド設定(タブ)に移動し、C++標準ライブラリ設定をコンパイラのデフォルトからlibc++(LLVM ...)に変更します。

今すぐビルドすると、アプリがiOS5以降と互換性がないというエラーが表示されます。したがって、概要(タブ)に移動し、展開ターゲットを5.0に変更します。これで正常にビルドされるはずです。

于 2013-10-24T06:13:45.060 に答える
0

これが私が問題を修正した方法です。プロジェクトをクリーンアップして再作成することは、私にとって良い考えではなかったようです。

この問題についてはWeb上にいくつかの回答がありますが、それぞれの回答は問題の解決に役立ちませんでした。1つはSOにあります

cassertファイルが見つかりませんが、Box2dテンプレートを使用しており、もう1つはcocos2dにあります-iphoneフォーラム、

http://www.cocos2d-iphone.org/forums/topic/cannot-include-box2d-cassert-file-not-found-despite-every-file-being-mm/

2つの提案を組み合わせると、私にとってはうまくいきました-

  1. すべての名前を.mから.mmに変更します(cocos2dまたはbox2dファイルではなく、プロジェクトファイルのみ)。
  2. 各ファイルの右側のペインで、[タイプ]オプションが[デフォルト-ObjectiveC++ソース]に設定されていることを確認してください</li>

特に私には別の問題がありましたが、あなたにとっては問題ではないかもしれません。私はCCLabelTTFに次の署名を使用していました

CCLabelTTF *title = [CCLabelTTF labelWithString:@"Hello" dimensions:CGSizeMake(720.0f, 880.0f) alignment:UITextAlignmentLeft fontName:@"Arial" fontSize:34];

これは非推奨であり、至る所でエラーが発生しました。私は現在、次のわずかに変更されたバージョンを使用しており、エラーが修正されています-

CCLabelTTF *title = [CCLabelTTF labelWithString:@"Hello" dimensions:CGSizeMake(720.0f, 880.0f) hAlignment:kCCTextAlignmentRight fontName:@"Arial" fontSize:34];

この修正に関する私の最新の記事は、次の場所にあります-http: //indiangamer.com/how-i-fixed-the-cocos2d-box2d-include-file-not-found-error/

于 2013-12-18T12:01:30.960 に答える
0

私のような人のために:私は非常に古いxcodeプロジェクトを再度開こうとしましたが、cassertファイルでこのエラーが発生しました。

ターゲットを新しいもの(私の場合はiOS 13)に設定するだけで、正しいバージョンのc ++ stdlibが自動的に選択され、すべてが正常に機能しました。

于 2020-05-10T21:54:54.087 に答える