我有一个用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编译器进行编译?
请帮助。提前谢谢!
答案 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