c++ - 在 Swift 项目中集成 Box2d 会出现找不到 cassert 文件的错误

标签 c++ objective-c macos swift box2d

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

pod 'box2d'

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

当我点击构建按钮时,出现编译错误:

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

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

最佳答案

最后我自己弄明白了。

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

//
//  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 文件中并不能解决编译器错误。

就是这样,现在它可以愉快地编译了。

关于c++ - 在 Swift 项目中集成 Box2d 会出现找不到 cassert 文件的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24500416/

相关文章:

c++ - 无法正确比较两个数字

c++ - 使用模板中的参数包创建对象

c++ - 返回多个数组的函数

ios - Objective-C : Check how long animation runs for

objective-c - 使用Swift的TFHpple框架进行编译错误

c++ - 管理未动态分配的内存

ios - 在后台测距 iOS 信标

macos - 使用 NKE 更改数据包接口(interface)

objective-c - cocoa 成分的透明流程创建

ios - iOS 和 OS X 目标的通用预编译 header