我在Xcode 7.0中有一个适用于iOS的Xcode项目,它包含Objective-C,C ++和C代码。 Xcode尝试编译扩展名为.h(而不是.hpp)的C ++头文件作为产生错误的C头文件。
我该如何解决这个问题?应该有一个设置,应该将哪些文件编译为哪种语言。
答案 0 :(得分:3)
单独的头文件没有编译。它们包含的编译源文件。如果将它们包含在.c中,它们将被编译为C,如果在.m中 - 如Objective-c,如果在.cpp中 - 如C ++,如果在.mm中 - 如Objective-C ++。
将你的名字命名为.h或.hpp。
并不重要如果你在h文件中有一些C ++代码 - 你应该把它放在
中#ifdef __cplusplus
#endif
如果你在h文件中有一部分Objective-C代码,你应该把它放在
中#ifdef __OBJC__
#endif
这将使此语句中的代码对其他语言不可见。
您可以在Xcode生成的pch文件中找到此声明。