如何将C ++代码导入commonMain(Kotlin /多平台项目)

时间:2020-11-01 05:32:29

标签: kotlin-multiplatform

在将我的业务逻辑代码从JAVA迁移到Kotlin / Multiplatform之前,我想实现一些用例。 其中之一是使用c ++代码。 在commonMain级别的Kotlin / Multiplatform项目中可以使用c ++代码吗? 还是我需要为每个平台编写包装层(如JNI)? 我可以得到一些示例代码吗?

非常感谢!

2 个答案:

答案 0 :(得分:2)

调用C ++可能很棘手。您需要在JVM上具有JNI,在本机上,您需要使用C(或Objective-C)包装C ++,然后使用cinterop将其提供给本机Kotlin编译器。然后,通常,您需要编写逻辑的通用版本,并在每个平台上实现该逻辑。

    Kotlin(common)
          |
         / \
        /   \
    Kt(jvm) Kt(native)
      /       \
    JNI       C/ObjC
    /           \
  C++           C++

最终可能会在本机上直接进行C ++互操作,但不确定何时。

答案 1 :(得分:0)

您可以使用cinterop工具生成Kotlin绑定。在此处C Interop - K/N

了解更多