Objective c Object-C+的问题+;和框架

Objective c Object-C+的问题+;和框架,objective-c,frameworks,cocos2d-iphone,box2d,iphone-wax,Objective C,Frameworks,Cocos2d Iphone,Box2d,Iphone Wax,我有一个项目,需要集成Box2D、Cocos2d iPhone和iPhone wax。 首先,我将cocos2d iphone和box2d放在一起,它给了我以下错误信息: fatal error: 'cassert' file not found #include <cassert> ^ 所以我再次搜索,发现这是因为预期的库不存在。 我一个接一个地检查,我很确定每个设置都是正确的,我没有发现问题 所以我做了一些测试。 我从其中一个模板创建了

我有一个项目,需要集成Box2D、Cocos2d iPhone和iPhone wax。 首先,我将cocos2d iphone和box2d放在一起,它给了我以下错误信息:

    fatal error: 'cassert' file not found
    #include <cassert>
             ^
所以我再次搜索,发现这是因为预期的库不存在。 我一个接一个地检查,我很确定每个设置都是正确的,我没有发现问题

所以我做了一些测试。 我从其中一个模板创建了一个新的示例项目,我将iPhone蜡放入其中,效果很好。 然后我将main.m文件改为main.mm,它给出了如上所述的错误

那么我该如何解决这个问题呢? 这是因为object-C++无法导入object-C和C框架吗? 我是否应该重新创建框架并将其所有名称更改为*.mm?
或者,当我将源文件更改为*.mm时,我做错了吗?应该有更好的解决方法吗?

该函数实际上是一个名为
wax\u start()
的函数。所有其他的垃圾都是C++编译器增加的名字。这是支持重载所必需的,即另一个crap对参数和
wax\u start()
的返回类型进行编码。解决这个问题的最简单方法是告诉C++编译器,该报头中的所有内容都是纯C,例如

extern "C"
{
 #import "Wax/whatever.h"
}

不要使用main.mm,但要坚持使用main.m。无需为Box2D重命名main.m。这是因为您通常不在main.m中包含/导入任何Box2D(C++)标题

如果将Box 2D(C++)头文件添加到前缀头,确保它们只包含在C++(ObjtoVC++)文件中,如:

// C++ header files
#ifdef __cplusplus
#import "Box2D.h"
#endif // __cplusplus

谢谢你的回答。实际上,问题是C++试图调用C函数引起的。我只是痴迷于整个Object-C++的事情,我忘了它。只需将extern C放在进口蜡的地方,一切都已修复。再次感谢你的帮助。我在发布这个问题几分钟后就解决了这个问题。这就是StackOverFlow的工作原理吗?你发布一个问题,然后自己找出答案。:)
// C++ header files
#ifdef __cplusplus
#import "Box2D.h"
#endif // __cplusplus