【问题标题】:How to import generated Kotlin classes from C in Kotlin/Native?如何在 Kotlin/Native 中从 C 导入生成的 Kotlin 类?
【发布时间】:2021-10-21 11:22:52
【问题描述】:

我正在尝试 Kotlin/Native C 互操作。

我使用 C 头文件成功构建了 Kotlin/Native 项目

但不知道如何导入生成的库。它们驻留在哪个包中

例如,在 App.h(参见要点)中,有一个名为 void printNameFromC(char* name) 的函数。如何在 Kotlin 文件中调用它? (如何导入函数包?)

我尝试使用 main.cinterops.packageName 中给出的包名称,尝试使用 cinterops.create(**) 中的名称以及手动键入头文件中使用的函数名称,但它们未显示在建议中

请帮我看看如何使用

我的代码: https://gist.github.com/RageshAntony/d25232763682d2a15acbabaa1cca08bc

项目结构截图

【问题讨论】:

    标签: c kotlin gradle intellij-idea kotlin-native


    【解决方案1】:

    结果绑定应该在开发者定义的包名下可用。 In 可以直接在.def 文件中指定package,如the documentation,或在build.gradle<.kts>cinterops 块中执行相同的操作,如here 所述。
    在这种特殊情况下,由于要点中没有 App.h,我猜想.def 文件是不正确的。它的内容与cinterops块的内容有冲突,而且它在一个地方包含了几个独立的头,应该避免。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-08-07
      • 2021-07-16
      • 2016-02-09
      • 1970-01-01
      • 1970-01-01
      • 2017-04-15
      • 1970-01-01
      相关资源
      最近更新 更多