如何从静态库导入C ++头文件到Obj-C?

时间:2014-01-24 19:38:58

标签: c++ objective-c xcode static-libraries

我有一个第三方静态库,其中包含一个用C ++编写的头文件。我已经链接了库,但是得到了编译错误,因为头文件使用#include给出了一个找不到文件的错误。它是一个库,所以我认为我根本不应该编辑该文件,那么在项目设置中是否有更改标志或属性来编译该头文件?

错误发生在:ViewRightWebiOS.h

错误在第三行的具体行:

#include <string>

2 个答案:

答案 0 :(得分:0)

如果可以,您应该将文件包含在实现文件(.m)文件中,但将其重命名为.mm。这样你实际上将使用objective-c ++,但它应该没问题。

答案 1 :(得分:0)

只能导入C ++标头而不能导入使用C ++编译的文件。

执行此操作的简单方法是重命名包含#include的文件,使其扩展名为.mm,而不是.m的Objective C普通扩展名.Xcode将使用Objective-C ++方言编译此文件。在此模式下,C ++和Objective C构造在同一文件中被理解。但是,您可以在C ++对象上使用Objective C功能,反之亦然,互操作仍然使用通常理解的C构造