[英]Objective-C++ and .cpp files in Xcode
我正在尝试制作一个简单的Objective-C ++应用程序。 我的所有代码都可以很好地编译,包括在Objective-C类中使用C ++,直到尝试将C ++类添加到混合中为止。 我创建了一个简单的C ++类:
Test.h
class Test {
};
并将此文件包含在Objective-C类(扩展名为.mm)中,并且出现以下构建错误:
error: expected '=', ',', ';', 'asm' or '__attribute__' before 'Test'
显然,我在这里缺少一些简单的概念。 我希望能得到一些启发。
好吧,在仔细阅读了Apple的文档之后 ,在头文件中使用__cplusplus
预处理器标志似乎是答案。 这是现在的代码:
#ifdef __cplusplus
class Test {
};
#endif
helixed的答案将无济于事,如果__cplusplus未定义,预处理器只会跳过您的类。
大多数您想从* .m文件包含C ++类的方法,都尝试将其重命名为* .mm。 这在我这方面解决了同样的问题。
所需的预处理器命令不应为:
#ifdef __cplusplus
在Xcode 6中,有以下选项:
Apple LLVM 6.0 - Language -> Compile Sources As
您可以将其设置为Objective-C ++,然后文件扩展名无关紧要。 如果您正在跨平台工作并且需要使用其他文件扩展名,则此功能特别有用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.