我按照以下步骤构建第一个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
:我得到了以下树中的库和可执行文件:
我有以下问题:
没有为以下目标生成任何内容,这就是为什么我将其作为注释: iOS:ios_x64,ios_arm32,ios_arm64 树莓派:linux_arm32_hfp Windows:mingw_x64 Linux:linux_x64
所有生成的库utils.Klib
是否都相同,所以我可以选择任何一个库并在任何地方使用它,或者我必须根据所需的目标进行选择。
如何在foo
函数中调用作为库一部分的函数main
,我尝试了import utils
然后调用utils.foo()
,但是没有用。
答案 0 :(得分:1)
-l utils.klib
用于命令行或library
DSL动词。另外,建议您使用新的多平台Gradle DSL,而不是您在此处使用的那个。
答案 1 :(得分:1)
此处描述了用于新的Kotlin多平台模型的Gradle DSL:http://kotlinlang.org/docs/reference/building-mpp-with-gradle.html
(对不起,有一个单独的主题,我只是没有足够的声誉来对现有主题发表评论)