Box2dでcocos2dテンプレートを使用していますが、プロジェクトにBox2d.hをインポートすると、エラーcassertフィールドが見つかりません。cocos2dバージョン2.0を使用しています。助けてください。
5 に答える
プロジェクトのすべてのソースコードファイルのファイル拡張子が.mではなく.mmであることを確認してください。または、各.mファイルのタイプをObjective-C++に設定します。
ファイル拡張子を変更します。mmそれだけです
xcode4で拡張子を変更しても機能しません。代わりに、ビルド設定(タブ)に移動し、C++標準ライブラリ設定をコンパイラのデフォルトからlibc++(LLVM ...)に変更します。
今すぐビルドすると、アプリがiOS5以降と互換性がないというエラーが表示されます。したがって、概要(タブ)に移動し、展開ターゲットを5.0に変更します。これで正常にビルドされるはずです。
これが私が問題を修正した方法です。プロジェクトをクリーンアップして再作成することは、私にとって良い考えではなかったようです。
この問題についてはWeb上にいくつかの回答がありますが、それぞれの回答は問題の解決に役立ちませんでした。1つはSOにあります
cassertファイルが見つかりませんが、Box2dテンプレートを使用しており、もう1つはcocos2dにあります-iphoneフォーラム、
2つの提案を組み合わせると、私にとってはうまくいきました-
- すべての名前を.mから.mmに変更します(cocos2dまたはbox2dファイルではなく、プロジェクトファイルのみ)。
- 各ファイルの右側のペインで、[タイプ]オプションが[デフォルト-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/
私のような人のために:私は非常に古いxcodeプロジェクトを再度開こうとしましたが、cassertファイルでこのエラーが発生しました。
ターゲットを新しいもの(私の場合はiOS 13)に設定するだけで、正しいバージョンのc ++ stdlibが自動的に選択され、すべてが正常に機能しました。