GCC编译器可以编译Objective-C和C代码吗?

时间:2013-03-04 08:26:59

标签: objective-c xcode gcc llvm llvm-gcc

我有一个用C编写的视频解码器的源代码。 代码在MAC终端(使用GCC编译器)上成功编译和执行。现在我正在尝试使用相同的源代码在Xcode上创建一个应用程序。只有应用程序的GUI是用Objective-C编写的。

当我尝试在Xcode(使用LLVM编译器)上执行时,我在C代码中遇到了很多错误。 Xcode提供的唯一其他编译器选项是LLVM GCC 4.2。我使用它编译,发现它无法识别用Objective-C编写的代码。

是否有任何编译器可用于Objective-C和C? 可以使用GCC 4.2编译器来编译Objective-C代码吗?

如何告诉Xcode使用GCC 4.2编译器进行编译?

请帮助。提前谢谢!

2 个答案:

答案 0 :(得分:2)

LLVM和GCC都可用于编译C,C ++和Objective-C代码。

我的猜测是某些编译器标志设置不正确。

答案 1 :(得分:0)

Objective-C是ANSI C的严格超集,因此任何可以编译Objective-C代码的编译器也可以编译(ANSI)C代码。如果您的库不使用标准C,那么您可能会遇到问题。

Objective-C ++也是如此,它是C ++的严格超集。

如果像您的情况一样,头文件中存在冲突的typedef,则可以在编译Objective-C代码时使用条件编译隐藏typedef

#ifndef __OBJC__
typedef unsigned char BOOL;
#endif