我有一个第三方静态库,其中包含一个用C ++编写的头文件。我已经链接了库,但是得到了编译错误,因为头文件使用#include给出了一个找不到文件的错误。它是一个库,所以我认为我根本不应该编辑该文件,那么在项目设置中是否有更改标志或属性来编译该头文件?
错误发生在:ViewRightWebiOS.h
错误在第三行的具体行:
#include <string>
答案 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构造