Почему Gradle не работает на: linkDebugTestLinux в моем многоплатформенном проекте Kotlin? - PullRequest
0 голосов
/ 27 июня 2019

Я портирую библиотеку C # на Kotlin, чтобы воспользоваться мультиплатформенностью.При запуске задачи build она не выполняется в подзадаче linkDebugTestLinux.

Для контекста я использую IDEA Ultimate на Manjaro.Я уверен, что в моем коде нет ничего плохого, поскольку compileKotlinLinux завершается без ошибок.

Для "linkDebugTestLinux" нет нулевых результатов DDG и ничего полезного для "konan not found home" или "kotlin native ... ".После нескольких часов склейки неполных и устаревших примеров из официальных документов я сдался.

My 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, поэтому я загрузил здесь .

1 Ответ

0 голосов
/ 28 июня 2019

После некоторого расследования предполагалось, что проблема в пути. В журнале отладки вы получили фрагмент /home/yoshi/,/. Поскольку это имя каталога было неожиданным, компилятор интерпретировал это , как разделитель между именами lib. Итак, он попытался найти библиотеку /home/yoshi/, которая была явно недоступна.
На данный момент я бы порекомендовал вам изменить имя каталога на что-то тривиальное.

...