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

时间:2012-08-24 11:38:22

标签: iphone cocos2d-iphone game-physics box2d-iphone

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

5 个答案:

答案 0 :(得分:23)

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

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

网上有几个答案可以解决这个问题,但每个问题都无法解决问题。一个是在SO

cassert file not found but i use Box2d template,另一个是在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.   
  3. 确保在每个文件的右窗格中,“Type”选项设置为“Default - Objective C ++ Source”
  4.   

对我来说还有另一个问题,可能不是你的问题,我在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/

找到

答案 4 :(得分:0)

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

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