【问题标题】:Kotlin native not compiling properly with GradleKotlin 本机无法使用 Gradle 正确编译
【发布时间】:2018-10-12 13:18:22
【问题描述】:

我如下构建我的第一个 KN,gradle init,然后使用以下代码更新 build.gradle,然后使用我的 Mac 运行 gradle build

build.gradle:

buildscript {
    repositories {
        mavenCentral()
        maven {
            url "https://dl.bintray.com/jetbrains/kotlin-native-dependencies"
        }
    }
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-native-gradle-plugin:+"
    }
}

apply plugin: 'konan'

// Compile this component for 64-bit MacOS, Linux and Windows.
 konan.targets = [
                'wasm32',
                'android_arm32', 'android_arm64',
               //  'mingw_x64',
                //  'linux_x64', 'linux_arm32_hfp',
                 'macos_x64',
               //  'ios_x64', 'ios_arm32', 'ios_arm64'
                 ]

konanArtifacts {
    library('utils') {
        srcFiles fileTree('src/libs/utils')
    }
    program('hello') {
        libraries {
            artifact 'utils'
        }
    }
}

我的应用结构是:

hello.kt(应用):

fun main() {
    println("Hello Gradle!")
}

foo.kt(库):

fun foo(){
    println("Hello Gradle! again")
}

通过运行gradle build:我得到了如下树中的库和可执行文件:

我有以下问题:

  1. 没有为以下目标生成任何内容,这就是我将它们设为 cmets 的原因: iOS:ios_x64、ios_arm32、ios_arm64 树莓派:linux_arm32_hfp 视窗:mingw_x64 Linux:linux_x64

  2. 是否所有生成的库utils.Klib都相同,所以我可以选择其中任何一个并在任何地方使用它,或者我必须根据所需的目标进行选择。

  3. 如何在main函数中调用作为库一部分的函数foo,我试过import utils然后调用utils.foo()但没有用。

【问题讨论】:

    标签: kotlin kotlin-native


    【解决方案1】:

    这里描述了新的 Kotlin 多平台模型的 Gradle DSL:http://kotlinlang.org/docs/reference/building-mpp-with-gradle.html

    (对不起,单独的线程,我只是没有足够的声誉来对现有的发表评论)

    【讨论】:

      【解决方案2】:
      1. 请阅读发行说明文档,描述哪些主机支持哪些目标:https://github.com/JetBrains/kotlin-native/blob/master/RELEASE_NOTES.md#supported-platforms
      2. 不,请使用 per-target .klib
      3. 要使用该库,您需要告诉编译器,即-l utils.klib 用于命令行或library DSL 动词。

      另外建议使用新的多平台 Gradle DSL,而不是你在这里使用的那个。

      【讨论】:

      • 谢谢,我可以在哪里找到有关新的多平台 Gradle DSL 的明确信息的任何链接。
      猜你喜欢
      • 2018-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-08
      • 1970-01-01
      • 2019-10-25
      相关资源
      最近更新 更多