1

我有一个需要从 android 和 iOS 使用的 C++ 库,所以我的想法是创建一个多平台模块,该模块将包装该库以从两个实现中使用它。

另一方面,我看到了一个示例,其中 kotlin native 使用了 C 代码: https ://theprogrammershangout.com/resources/kotlin/native/creating-c-bindings.md/

还有这个来自 kotlin 文档: https ://kotlinlang.org/docs/native-c-interop.html

是否有可能使这种互操作性与 jvm 和 iOS 一起工作?

4

1 回答 1

2

您不能直接与 Kotlin/Native 中的 C++ 进行互操作(使用 cinterop)。您的 C++ 库需要公开其extern C自身的一个版本,或者您需要为您的 C++ 库创建一个与 C 兼容的新娘,然后让 cinterop 看看。

使用 Objective-C 接口而不是 C 接口来包装它可能更自然,但这显然取决于库的功能以及您对 C 与 Objective-C 的舒适度。

于 2021-12-22T17:37:08.727 回答