在Swift项目中集成Box2d会导致找不到cassert文件错误

时间:2014-06-30 23:29:48

标签: c++ objective-c macos swift box2d

我想在我的OS X应用程序中集成Box2d,所以我使用了以下的Podfile来抓取它:

pod 'box2d'

box2d的版本是2.3.0。在我从pod install得到的xcworkspace中,我创建了一个桥头,以便与C ++ API互操作(根据doc,开发人员不能直接从Swift lang导入C ++项目,你应该创建一个ObjC桥)。

当我点击构建按钮时,我遇到了编译错误:

<unknown>:0: error: /path/to/project/Pods/Headers/Box2D/Common/b2Settings.h:22: 'cassert' file not found

所以我想知道如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

最后我自己想出来了。

我已经创建了苹果公司文档中提到的桥接文件,但我放在那里的内容是:

//
//  Use this file to import your target's public headers that you would like to expose to Swift.
//
#import <Box2d/Box2d.h>

这是编译器错误的根。因此,我必须创建一个新的Objective-C类,将.m文件重命名为.mm,并将导入行放在.mm文件中。 注意:将导入行放在.h文件中无法解决编译器错误。

就是这样,现在它快乐地编译了。