0

我有一个用 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 编译器进行编译?

请帮忙。提前致谢!

4

2 回答 2

2

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

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

于 2013-03-04T08:33:30.587 回答
0

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

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

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

#ifndef __OBJC__
typedef unsigned char BOOL;
#endif
于 2013-03-04T08:46:56.773 回答