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 に答える