在Xcode .c头文件中导入complex.h头文件会产生编译错误

时间:2012-05-08 22:17:10

标签: objective-c c xcode

我有一个包含Objective c和c文件混合的项目。在其中一个c头文件中,我试图导入complex.h。 Xcode生成13个连接到NSObjRuntime.h的编译错误:

NSObjRuntime.h

解析问题 预期的标识符或'('

解析问题 未知的类型名称'NSString'...

NSZone.h会产生更多编译错误。

在我看来,错误来自于.c文件中无法识别的Objective C代码。我应该将我的c文件转换为目标c以便导入complex.h还是有更优雅的解决方案?

1 个答案:

答案 0 :(得分:3)

  

在我看来,错误来自于.c文件中无法识别的Objective C代码。

准确。

  

我应该将我的c文件转换为目标c以便导入complex.h还是有更优雅的解决方案?

在此示例中无需使用objc。因此,没有必要将其编译为objc。 complex.h不需要或包含objc标头。

您只是在c翻译中不包含objc标题。

如果此包含来自前缀标题,您可以使用:

#if defined(__OBJC__)
#import <Foundation/Foundation.h>
#endif

如果它是通过您包含的其他标头导入的,则必须考虑包含依赖项。有时会有不必要的包含,有时您可以使用#if defined(__OBJC__)离开。