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

GCC编译器可以同时编译Objective-C和C代码吗?,objective-c,xcode,gcc,llvm,llvm-gcc,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的编译器? GCC4.2编译器能

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

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

有没有可以同时用于Objective-C和C的编译器? GCC4.2编译器能否用于编译Objective-C代码

如何告诉Xcode使用GCC4.2编译器进行编译


请帮忙。提前谢谢
我的猜测是某些编译器标志设置不正确

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

同样,ObjuleC++是正确的,它是C++的严格超集。 如果与您的情况一样,头文件中存在冲突的

typedef
,则在编译Objective-C代码时,可以使用条件编译来隐藏
typedef

#ifndef __OBJC__
typedef unsigned char BOOL;
#endif

你在C代码中遇到了什么样的错误?是的,这个问题没有有用的信息!请更具体地说,我知道你说这是C代码,但是记住,如果你还将ObjtoE-C与C++混合,你需要重命名文件,以便他们使用.mm扩展。例如:TyPulf无符号char BooL;给出错误-重新定义typedef BOOL在C中无效。因为我使用的是现有的C代码(大约有20个源文件),所以我无法手动将BOOL使用的所有位置替换为“unsigned char”。我没有用GCC编译器得到这个错误。@ Reald-哦,好吧,但是我没有使用任何C++代码。编译正在发生,但是LLVM在使用GCC编译时抛出了错误。有没有办法指定Xcode只使用GCC编译器?有一种方法。你可以设置一个指向编译器的构建标志“CC”。我以为这只是设置CC标志的问题(用自定义的叮当声做了b4),但它看起来有点复杂:看起来相当复杂!但我会试试看它是否有效。谢谢你的努力!