是否可以使用来自 kotlin 多平台移动应用程序的 C++ 库?
Is it possible to use a C++ library from a kotlin multiplatform mobile app?
我有一个 C++ 库需要在 android 和 iOS 中使用,所以我的想法是创建一个多平台模块来包装该库以在两个实现中使用它。
另一方面,我看到了一个示例,其中 kotlin native 使用了 C 代码:
https://theprogrammershangout.com/resources/kotlin/native/creating-c-bindings.md/
还有这个来自 kotlin 文档:
https://kotlinlang.org/docs/native-c-interop.html
是否有可能使这种互操作性与 jvm 和 iOS 一起工作?
您不能直接与来自 Kotlin/Native 的 C++ 互操作(使用 cinterop)。您的 C++ 库需要公开其自身的 extern C
版本,或者您需要创建一个与 C++ 库兼容的 C 桥接器,并让 cinterop 查看它。
用 Objective-C 接口而不是 C 接口包装它可能更自然,但这显然取决于库的功能以及您对 C 与 Objective-C 的舒适程度。
我有一个 C++ 库需要在 android 和 iOS 中使用,所以我的想法是创建一个多平台模块来包装该库以在两个实现中使用它。
另一方面,我看到了一个示例,其中 kotlin native 使用了 C 代码: https://theprogrammershangout.com/resources/kotlin/native/creating-c-bindings.md/
还有这个来自 kotlin 文档: https://kotlinlang.org/docs/native-c-interop.html
是否有可能使这种互操作性与 jvm 和 iOS 一起工作?
您不能直接与来自 Kotlin/Native 的 C++ 互操作(使用 cinterop)。您的 C++ 库需要公开其自身的 extern C
版本,或者您需要创建一个与 C++ 库兼容的 C 桥接器,并让 cinterop 查看它。
用 Objective-C 接口而不是 C 接口包装它可能更自然,但这显然取决于库的功能以及您对 C 与 Objective-C 的舒适程度。