1

背景:

我是 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 中编写函数,尽管只是我需要的函数而不是整个库。

如何使以下 C 函数在 Objective-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;
}

那么...我应该将其转换,还是尝试以某种方式编译为适当的格式,如何实现?(顺便说一下,我不知道静态库应该是什么格式,或者它是否应该是静态的...... - 我在这里迷失了......)

感谢您的帮助!

4

1 回答 1

3

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

于 2010-03-28T06:01:17.673 回答