Kotlin / Native Как включить заголовки C-interop в артефакт?

#c #kotlin #kotlin-multiplatform #kotlin-native #cinterop

#c #kotlin #kotlin-мультиплатформенный #kotlin-native #cinterop

Вопрос:

Я добавил заголовки таким образом в build.gradle.kts файл:

 linuxX64 {
    val main by compilations.getting
    main.cinterops.create("x11") {
        defFile("src/linuxX64Main/cinterop/x11.def")
        compilerOpts.add("-I"   rootDir.resolve("include"))
    }
}
 

Библиотека отлично компилируется и публикуется в mavenLocal, но когда какой-либо другой проект добавляет ее в качестве зависимости и запускает компоновщик, он выдает следующие ошибки:

 > Task :linkReleaseExecutableLinuxX64
e: C:UsersAnimesh.konandependenciesmsys2-mingw-w64-x86_64-clang-llvm-lld-compiler_rt-8.0.1/bin/ld.lld invocation reported errors
The C:UsersAnimesh.konandependenciesmsys2-mingw-w64-x86_64-clang-llvm-lld-compiler_rt-8.0.1/bin/ld.lld command returned non-zero exit code: 1.
output:
ld.lld: error: undefined symbol: XOpenDisplay
>>> referenced by out
>>>               C:UsersAnimeshAppDataLocalTempkonan_temp3813013133705122841result.o:(kfun:com.github.animeshz.keyboard.X11KeyboardHandler#prepare(){})
ld.lld: error: undefined symbol: XPeekEvent
>>> referenced by out
>>>               C:UsersAnimeshAppDataLocalTempkonan_temp3813013133705122841result.o:(kfun:com.github.animeshz.keyboard.X11KeyboardHandler#readEvents(){})
ld.lld: error: undefined symbol: XCloseDisplay
>>> referenced by out
>>>               C:UsersAnimeshAppDataLocalTempkonan_temp3813013133705122841result.o:(kfun:com.github.animeshz.keyboard.X11KeyboardHandler#cleanup(){})
> Task :linkReleaseExecutableLinuxX64 FAILED
 

Как нам включить некоторые заголовки / символы C-interop в артефакт библиотеки, который должен быть создан и опубликован в maven (в настоящее время тестируется на mavenLocal)?

Комментарии:

1. Я правильно понимаю, что вы хотите упаковать общую библиотеку в результирующий артефакт? Почему бы вместо этого не попытаться сгенерировать привязки для библиотеки, установленной в целевой системе?