如何在Objective-C iOS项目中使用C库?

时间:2014-03-26 15:40:41

标签: ios objective-c c sdk static

我正在为iOS编写程序,并希望在我的项目中使用Apache Portable Runtime和Subversion C库。

由于这是我第一次尝试这样做,我不知道从哪里开始。

我已经创建了一个新的C / C ++库项目,导入了项目中的所有apr.h和svn.h文件,将sdk设置为iOS7

它编译得很好,它会输出一个.a文件,但是当我将它导入我的项目时,它没有链接或其他东西。

有没有人知道教程或者svn库的目标c?或者至少指出我正确的方向。

我在谷歌搜索时得到的唯一结果是:

“Objective-C本应支持C库,这应该非常简单”

我想,对我来说不是那么容易。 ;)

2 个答案:

答案 0 :(得分:1)

如果您拥有C项目的源代码,则可以直接将所有源代码放入项目中。 Xcode知道如何编译C代码,它只会与你项目的其余部分一起编译。

如@ Adam-Smith所述,您可以直接与Objective-C代码中的C对象接口,而C对象将不会由 ARC

管理

答案 1 :(得分:1)

这是您可以排除故障的方法:

  1. 点击蓝色项目图标。
  2. 在主视图中选择“构建阶段”选项卡。
  3. 展开"与图书馆链接"。
  4. 确保您的.a文件位于此列表中。如果没有添加它。

    如果仍有问题,请检查构建日志(左侧窗格中最右侧的图标)。构建日志包含编译器所做的很长的列表。最右边的图标看起来像是5-6行。实际上,图标是隐藏的,直到你将鼠标悬停在它上面。

    单击此按钮将展开编译器步骤,并准确显示为编译器提供的参数。这将是相当长的,因此复制到编辑器可能很聪明。但它将包含开关,例如-I用于包含头文件,-L用于库的位置等。检查您的.a文件实际上是否包含在编译依赖于它的代码期间。我相信应该是-l开关。