您好我遇到了Xcode7这个奇怪的问题,这就是我做的:
创建一个新项目,添加.pch文件,并在构建设置中将.pch文件设置为预编译前缀文件。
已添加
#ifdef __cplusplus
#import <somefile.hpp>
#else
#import <somefile.hpp>
#endif
在.pch文件中测试xcode是否会进入__cplusplus块,这里是结果截图:
你可以看到它没有进入__cpluscplus
阻止。
任何人都知道我该怎么做才能让它识别__cplusplus
阻止?
答案 0 :(得分:2)
将为您使用的每种语言构建前缀标头。
对于某些文件(.c,.m),它将通过#ifdef __cplusplus
部分,而其他文件(.cpp,.mm)则不会。
在大多数Xcode模板中,您将拥有main.m / main.c文件,该文件将导致#else
部分被编译。
如果将c ++ / ObjC ++源文件添加到项目中,它们将使用在定义__cplusplus
的情况下构建的pch。