为什么默认Xcode项目设置无法识别__cplusplus块

时间:2016-03-24 16:20:38

标签: objective-c xcode c++11

您好我遇到了Xcode7这个奇怪的问题,这就是我做的:

创建一个新项目,添加.pch文件,并在构建设置中将.pch文件设置为预编译前缀文件。

已添加

#ifdef __cplusplus
#import <somefile.hpp>
#else
#import <somefile.hpp>
#endif

在.pch文件中测试xcode是否会进入__cplusplus块,这里是结果截图:

enter image description here

你可以看到它没有进入__cpluscplus阻止。

任何人都知道我该怎么做才能让它识别__cplusplus阻止?

1 个答案:

答案 0 :(得分:2)

将为您使用的每种语言构建前缀标头。

对于某些文件(.c,.m),它将通过#ifdef __cplusplus部分,而其他文件(.cpp,.mm)则不会。

在大多数Xcode模板中,您将拥有main.m / main.c文件,该文件将导致#else部分被编译。 如果将c ++ / ObjC ++源文件添加到项目中,它们将使用在定义__cplusplus的情况下构建的pch。