2010-03-28 48 views
1

背景:将C函数转换为Objective C还是包含C库的替代方法?

我是新来的Objective-C,我从来没有碰过C之前。我试图在我的iPhone/iPod Touch项目中包含一个C库,并且无法使用包含的指令成功编译库的源代码,因此我已经使用Xcode包含.h和.c文件。图书馆是希伯来文日期和相应的犹太节日。它可以在这里找到:http://sourceforge.net/projects/libhdate/

我似乎无法将.c文件导入到我的实现文件中。我可以导入.h文件。当我尝试使用#import "file.c",其中file.c是XCode中的文件时,它不起作用。为什么不?

我认为只是在Objective-C中编写函数,尽管只是我需要的函数而不是整个库。

如何在Objective-C中使以下C函数工作?是否还有其他事情需要包括/重新编码/编译?怎么会这样?我几乎可以肯定有一些东西缺失,但我不确定是什么。

代码:

int hdate_get_omer_day(hdate_struct const * h) 
{ 
    int omer_day; 
    hdate_struct sixteen_nissan; 

    hdate_set_hdate(&sixteen_nissan, 16, 7, h->hd_year); 
    omer_day = h->hd_jd - sixteen_nissan.hd_jd + 1; 

    if ((omer_day > 49) || (omer_day < 0)) 
     omer_day = 0; 

    return omer_day; 
} 

所以......我应该转换它,或者试图以某种方式来编译,以适当的格式和怎么做的? (顺便说一下,我不知道静态库应该采用什么格式,或者它应该是静态的... - 我很迷茫......)

我很感谢帮助!

回答

3

您不导入实施文件。您只需将它们一起编译并包含适当的头文件,以便您的代码知道函数和数据类型声明。

+0

那么,请您详细说明如何使用库?这是否意味着我可以从Objective c中开始调用C函数? – Moshe 2010-03-28 06:03:19

+0

显然如此。我需要弄清楚这个论点的正确格式,我很乐意去... – Moshe 2010-03-28 06:11:07

相关问题