4

次のことで私を助けてくれる人がいることを願っています。

現在、JNIを使​​用してCライブラリに接続されているAndroidアプリがあります。iOS アプリを同じ C ライブラリに接続したいのですが、関数を呼び出すにはどうすればよいですか? また、JNI なしでインターフェイスにアクセスするにはどうすればよいですか?

うまくいけば、誰かが良いヒントやチュートリアルを持っています。

私が持っているのは、Android アプリ、iOS アプリ、および JNI (Java Native Interface) に適合した C ライブラリです。Android部分は動作します。しかし、今はできるだけ再利用したいと思っていますが、iOS アプリをそのライブラリ (またはそのほとんど) に接続しています。(ライブラリは個別のヘッダーと .c ファイルです)

助けてください :)

4

2 に答える 2

3

私のコメントを少し詳しく説明すると、Android とは異なり、iOS アプリは Objective C と Apple のライブラリを使用して構築されます。Objective C は C のスーパーセットです。つまり、有効な C コードはすべて有効な Objective C コードでもあります。ソース ファイルを Xcode の iOS プロジェクトに直接追加し、必要な場所にライブラリ呼び出しを振りかけることができるはずです。つまり、iOS (または OSX) 開発用の JNI のようなものはありません。

于 2012-07-17T15:10:47.873 に答える
2

次の 2 つのオプションがあります。

  1. ライブラリを xcode のプロジェクトに追加してライブラリを直接使用し、ライブラリ検索パスを割り当て、ヘッダー検索パスを割り当て、それを使用する .m Objective-C ソース コードにヘッダーをインクルードします。
  2. xcode によってコンパイルおよびリンクされるすべての .c ファイルを追加し、それを使用する .m Objective-C ソース コードにヘッダーを含めます。

ps 特定のコンパイラ スイッチを使用した場合は、ライブラリを再構築して iOS を適切にターゲットにする必要がある場合があります。

于 2012-07-17T15:12:44.677 に答える