【问题标题】:Is it possible to use a C++ library from a kotlin multiplatform mobile app?是否可以从 kotlin 多平台移动应用程序中使用 C++ 库?
【发布时间】:2021-12-22 15:53:06
【问题描述】:

我有一个需要在 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 一起工作?

【问题讨论】:

    标签: kotlin kotlin-multiplatform kotlin-multiplatform-mobile


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-11
      • 2022-07-21
      • 2019-12-28
      相关资源
      最近更新 更多