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

Mat*_*ano 3 kotlin-multiplatform

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

非常感谢!

Kev*_*gan 5

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

    Kotlin(common)
          |
         / \
        /   \
    Kt(jvm) Kt(native)
      /       \
    JNI       C/ObjC
    /           \
  C++           C++
Run Code Online (Sandbox Code Playgroud)

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