4

我希望有人可以帮助我解决以下问题。

目前我有一个使用 JNI 连接到 C 库的 Android 应用程序。现在我想将我的 iOS 应用程序连接到同一个 C 库,但是我如何调用函数以及如何在没有 JNI 的情况下访问接口?

希望有人有一些好的提示或教程。

所以我拥有的是一个 Android 应用程序、一个 iOS 应用程序和一个适用于 JNI(Java 本机接口)的 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

你有两个选择:

  1. 通过将库添加到 xcode 中的项目来直接使用您的库,分配库搜索路径,分配标头搜索路径并在使用它的 .m Objective-c 源代码中包含标头。
  2. 添加要由 xcode 编译和链接的所有 .c 文件,并在使用它的 .m objective-c 源代码中包含头文件。

ps 如果您使用了一些特定的编译器开关,您可能需要重建您的库以正确定位 iOS。

于 2012-07-17T15:12:44.677 回答