linux - 为什么 Gradle 在 :linkDebugTestLinux in my Kotlin multiplatform project? 上失败

标签 linux kotlin gradle-kotlin-dsl kotlin-native

我正在将 C# 库移植到 Kotlin 以利用多平台。运行 build 任务时,它在子任务 linkDebugTestLinux 中失败。

对于上下文,我在 Manjaro 上使用 IDEA Ultimate。我确定我的代码没有任何问题,因为 compileKotlinLinux 完成时没有错误。

“linkDebugTestLinux”的 DDG 结果为零,“konan 找不到家”或“kotlin native ...”没有任何帮助。在将官方文档中不完整和过时的示例拼接了几个小时后,我放弃了。

我的build.gradle.kts:

plugins {
    kotlin("multiplatform") version "1.3.40"
}

repositories {
    mavenCentral()
}

dependencies {
    commonMainImplementation("org.jetbrains.kotlin:kotlin-stdlib")
    commonTestImplementation("org.jetbrains.kotlin:kotlin-test-common")
    commonTestImplementation("org.jetbrains.kotlin:kotlin-test-annotations-common")
}

kotlin {
//  js() // wasn't the issue
    linuxX64("linux")
}

没有参数的任务 build 的输出:

> Configure project :
Kotlin Multiplatform Projects are an experimental feature.
> Task :compileKotlinLinux
[...unused param warnings...]
> Task :compileKotlinMetadata
[...unused param warnings...]
> Task :metadataMainClasses
> Task :metadataJar
> Task :assemble
> Task :linuxProcessResources NO-SOURCE
> Task :linuxMainKlibrary
> Task :linkDebugTestLinux FAILED
e: Could not find "/home/username/" in [/home/username/path/to/the/repo, /home/username/.konan/klib, /home/username/.konan/kotlin-native-linux-1.3/klib/common, /home/username/.konan/kotlin-native-linux-1.3/klib/platform/linux_x64].
[...snip...]
BUILD FAILED in 16s
4 actionable tasks: 4 executed
Process 'command '/usr/lib/jvm/java-8-openjdk/bin/java'' finished with non-zero exit value 1

在我省略的样板中,它建议使用 --debug,所以我上传了 here .

最佳答案

经过一番排查,推测问题出在路径上。在调试日志中,您得到了 /home/yoshi/,/ 片段。至于这个目录名是意外的,编译器将这个 , 解释为 lib 名称之间的分隔符。因此,它试图找到库 /home/yoshi/,但显然不可用。
现在,我建议您将目录名称更改为简单的名称。

关于linux - 为什么 Gradle 在 :linkDebugTestLinux in my Kotlin multiplatform project? 上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56789087/

相关文章:

c - C 应用程序如何在运行时在 Linux 环境中更新自身

linux - Windows 桌面搜索工具 "everything"是否有任何 Linux 替代品?

linux - Haskell ghc 编译/链接错误,未创建可执行文件。 (Linux)

gradle - Kotlin需要使用Gradle构建库

linux - 设备映射器的“ioctl”签名

kotlin - 如何覆盖Kotlin生成的不必要的空检查?

kotlin - 如何从插件获取JetBrains IDE的确切版本?

gradle - Gradle 。 Kotlin-是否可以创建动态(“on fly”)任务?

kotlin - 将 Gradle 构建升级到 Kotlin 1.7.0 后为 "Unresolved reference: sourceCompatibility"

java - 用于具有子项目的项目的 Dropwizard + Gradle fatJar 引入 gradle-api-5.4.1.jar deps