7

我正在使用带有 Box2d 的 cocos2d 模板,但是当我在我的项目中导入 Box2d.h 时,它给了我错误 cassert fiel not found 我有 cocos2d 2.0 版,请帮助我

4

5 回答 5

24

确保所有项目的源代码文件的文件扩展名为 .mm 而不是 .m。或者将每个 .m 文件的类型设置为 Objective-C++。

于 2012-08-24T11:55:40.553 回答
1

更改您的文件扩展名 .mm 就是这样

于 2012-10-31T07:52:04.777 回答
0

在 xcode 4 中更改扩展名将不起作用。而是转到构建设置(选项卡)并将 C++ 标准库设置从编译器默认更改为 libc++ (LLVM...)。

如果您现在构建它,您将收到一条错误消息,指出应用程序与 iOS 5 或更高版本不兼容。所以转到摘要(选项卡)并将部署目标更改为 5.0。它现在应该可以成功构建。

于 2013-10-24T06:13:45.060 回答
0

这是我解决问题的方法。清理和重新创建项目对我来说似乎不是一个好主意。

对于这个问题,网上有几个答案,但每个答案都没有帮助我解决问题。一个在 SO 上

cassert 文件未找到,但我使用 Box2d 模板,另一个在 cocos2d-iphone 论坛上,

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

结合这两个建议对我有用 -

  1. 将您的所有(不是 cocos2d 或 box2d 文件,只是您的项目文件)从 .m 重命名为 .mm
  2. 确保在每个文件的右侧窗格中,“类型”选项设置为“默认 - 目标 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/

于 2013-12-18T12:01:30.960 回答
0

对于像我这样的人:我只是尝试重新打开一个非常旧的 xcode 项目,并在 cassert 文件中遇到此错误。

只需将目标设置为新目标(在我的情况下为 iOS 13),它就会自动选择正确版本的 c++ stdlib,一切正常。

于 2020-05-10T21:54:54.087 回答