如果我创建一个c文件并将其添加到顶部。
#import <GLKit/GLKit.h>
我收到一堆奇怪的错误。如果我导入任何目标C文件就是这种情况。我在其他问题/答案中没有看到这个。每个人似乎都建议C和Objective C无缝地协同工作!
gl.h
Unknown type name 'GLenum'; did you mean 'enum'?
GLKNamedEffect.h
Expected identifier or '('
答案 0 :(得分:6)
如果您将c文件从something.c
重命名为something.m
,则应该可以使用:
#import <GLKit/GLKit.h>
在您的文件中。现在,如果你这样做,生成的文件将是一个Objective-C文件,需要编译一个Objective-C编译器,因此需要指定.m
扩展名。
换句话说,Objective-C是一种构建在C之上的语言。所以你可以“混合”它们的语法,可以这么说,但只有Objective-C编译器才能编译混合。 C编译器对ObjC一无所知。
通过更改文件的扩展名,您可以选择编译器,并且可以使用“普通C”文件导入Objective-C标头并调用某个Objective-C库。
答案 1 :(得分:1)
C不是objective-c,因此无法导入objective-c源或包含文件。 (换句话说,你被告知的是假的)