Gradle能否为一个操作系统生成多个Kotlin本机二进制文件?

Gradle能否为一个操作系统生成多个Kotlin本机二进制文件?,gradle,kotlin,kotlin-native,Gradle,Kotlin,Kotlin Native,我能说服Gradle生成多个二进制文件吗?我有几个Kotlin包,其中的文件有一个适当的“fun main(…)”,但是默认的IntelliJ build.gradle文件只允许我指定一个“compilations.main.entryPoint”。 如果有帮助的话,我可以将主要函数放入Kotlin类或对象中 将入口点参数更改为数组无效:) 如果目前无法实现,这是Gradle的一般限制还是仅限于“kotlin multiplatform”插件 在我刚刚得到的答案是,这将是可能的Kotlin原生1

我能说服Gradle生成多个二进制文件吗?我有几个Kotlin包,其中的文件有一个适当的“fun main(…)”,但是默认的IntelliJ build.gradle文件只允许我指定一个“compilations.main.entryPoint”。 如果有帮助的话,我可以将主要函数放入Kotlin类或对象中

将入口点参数更改为数组无效:)

如果目前无法实现,这是Gradle的一般限制还是仅限于“kotlin multiplatform”插件


在我刚刚得到的答案是,这将是可能的Kotlin原生1.3.20

一个操作系统?可能但请记住;您在这里与本机代码密切合作,这意味着更少的平台兼容性。另外,Kotlin本机Windows可执行文件在Linux上不起作用,并且您无法在Windows上编译Linux可执行文件,因为缺少该平台的本机库。不过,我可能错了,这不是Kotlin Native的做法。澄清一下:我要求为一个操作系统提供几个二进制文件。我目前对多操作系统不感兴趣。在这种情况下,根据您的使用情况,您可能会寻找类似的东西-它是用于Java的,但由于它仍然是Gradle,我想您应该会得到一些类似的代码谢谢链接。如果你对格雷德了解得够多,那也许行得通。但是我想我最初的问题的答案是这个插件目前根本不支持多个二进制文件。
plugins {
    id 'kotlin-multiplatform' version '1.3.11'
}

repositories {
    mavenCentral()
}

kotlin {
    targets {
        // For ARM, preset should be changed to presets.iosArm32 or presets.iosArm64
        // For Linux, preset should be changed to e.g. presets.linuxX64
        // For MacOS, preset should be changed to e.g. presets.macosX64
        fromPreset(presets.mingwX64, 'mingw')

        configure([mingw]) {
            // Comment to generate Kotlin/Native library (KLIB) instead of executable file:
            compilations.main.outputKinds('executable')
            // Change to specify fully qualified name of your application's entry point:
            compilations.main.entryPoint = 'hello.main'
        }
    }
    sourceSets {
        // Note: To enable common source sets please comment out 'kotlin.import.noCommonSourceSets' property
        // in gradle.properties file and re-import your project in IDE.
        mingwMain {
        }
        mingwTest {
        }
    }
}

task runProgram {
    def buildType = 'debug' // 'release' - Change to 'debug' to run application with debug symbols.
    dependsOn "link${buildType.capitalize()}ExecutableMingw"
    doLast {
        def programFile = kotlin.targets.mingw.compilations.main.getBinary('EXECUTABLE', buildType)
        exec {
            executable programFile
            args ''
        }
    }
}