在iOS项目中包含C库

时间:2014-08-13 09:42:39

标签: ios c xcode

我正在使用Xcode在iOS上开展一个项目。我想要包含一个用C语言编写的库。但我不知道如何在Objective-C中使用C库。 以下是图书馆的链接:https://github.com/bcl/aisparser

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

你将以所谓的“名称重整”的形式遇到一个障碍。 C ++以与Obj-C不兼容的方式存储函数名称。

Objective-C没有像C ++一样实现类,所以它不会喜欢它。

解决这个问题的一种方法是实现一组调用C ++函数的简单C函数。保持C函数的数量尽可能低是一个很好的挑战!你最终会得到一个漂亮的紧凑界面! :)

要在C ++文件中声明这些函数,您需要将它们标记为C with:

 extern "C" int function_name(char *blob,int number, double foo) {...}

这会禁用标准名称修改。

使用您可以与目标C代码共享的所有这些函数的原型构建头文件。

您将无法以相同的方式传递类(因为您的ObjC代码无法使用它们),但您将能够传递指针(尽管您可能不得不对这些类型撒谎) )。