找不到cassert文件,但我使用Box2d模板



我在Box2d中使用cocos2d模板,但当我在项目中导入Box2d.h时,它会给我带来错误找不到cassert-fiel我有cocos2d 2.0版本请帮我

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

更改文件扩展名。mm就是

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

如果你现在构建它,你会收到一个错误,说应用程序与iOS 5或更高版本不兼容。因此,转到摘要(选项卡)并将部署目标更改为5.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. 确保在每个文件的右窗格中,"Type"选项设置为"Default–Objective C++Source"

具体来说,还有另一个问题,可能对你来说不是问题,我使用了以下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项目,但在casert文件中遇到了这个错误。

只要将目标设置为一个新的目标(在我的例子中是iOS 13),它就会自动选择正确版本的c++stdlib,一切都很好。

最新更新