我正在使用带有 Box2d 的 cocos2d 模板,但是当我在我的项目中导入 Box2d.h 时,它给了我错误 cassert fiel not found 我有 cocos2d 2.0 版,请帮助我
5 回答
确保所有项目的源代码文件的文件扩展名为 .mm 而不是 .m。或者将每个 .m 文件的类型设置为 Objective-C++。
更改您的文件扩展名 .mm 就是这样
在 xcode 4 中更改扩展名将不起作用。而是转到构建设置(选项卡)并将 C++ 标准库设置从编译器默认更改为 libc++ (LLVM...)。
如果您现在构建它,您将收到一条错误消息,指出应用程序与 iOS 5 或更高版本不兼容。所以转到摘要(选项卡)并将部署目标更改为 5.0。它现在应该可以成功构建。
这是我解决问题的方法。清理和重新创建项目对我来说似乎不是一个好主意。
对于这个问题,网上有几个答案,但每个答案都没有帮助我解决问题。一个在 SO 上
cassert 文件未找到,但我使用 Box2d 模板,另一个在 cocos2d-iphone 论坛上,
结合这两个建议对我有用 -
- 将您的所有(不是 cocos2d 或 box2d 文件,只是您的项目文件)从 .m 重命名为 .mm
- 确保在每个文件的右侧窗格中,“类型”选项设置为“默认 - 目标 C++ 源”</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,一切正常。