Ошибка DWARF: искажение номера строки при попытке включить secext.h в Kotlin / Native cinterop - PullRequest
0 голосов
/ 01 мая 2020

Я попытался включить заголовок secext.h winapi в Kotlin / Native cinterop, используя Gradle:

build.gradle:

// ...
kotlin {
    mingwX64("windows") {
        compilations.main {
            cinterops {
                secext {
                    packageName 'me.[...].cinterop.secext'

                    includeDirs.allHeaders("src/nativeInterop/cinterop")
                }
            }
        }
        // ...
    }
    // ...
}
// ...

src/nativeInterop/cinterop/secext.def:

headers = secext_wrapper.h
headerFilter = secext.h
package = me.[...].cinterop.secext

src/nativeInterop/cinterop/secext_wrapper.h:

#pragma once
#include <windows.h>
#define SECURITY_WIN32
#include <security.h>

И IDE, которую я использую (IntelliJ Idea с плагином Kotlin), видит функции из secext.h и компилируется, если я не использую ни одну из них. Когда я пытаюсь использовать GetUserNameExA, эти ошибки появляются в :linkDebugSharedWindc:

> Task :linkDebugSharedWindows
Produced library API in gpio4k_api.h
e: C:\Users\Chilli\.konan\dependencies\msys2-mingw-w64-x86_64-clang-llvm-lld-compiler_rt-8.0.1/bin/clang++ invocation reported errors

The C:\Users\Chilli\.konan\dependencies\msys2-mingw-w64-x86_64-clang-llvm-lld-compiler_rt-8.0.1/bin/clang++ command returned non-zero exit code: 1.
output:
C:\Users\Chilli\.konan\dependencies\msys2-mingw-w64-x86_64-clang-llvm-lld-compiler_rt-8.0.1\bin\ld: C:\Users\Chilli\.konan\dependencies\msys2-mingw-w64-x86_64-clang-llvm-lld-compiler_rt-8.0.1\bin\ld: DWARF error: mangled line number section (bad file number)
[many identical lines here]
C:\Users\Chilli\.konan\dependencies\msys2-mingw-w64-x86_64-clang-llvm-lld-compiler_rt-8.0.1\bin\ld: DWARF error: mangled line number section (bad file number)
C:\Users\Chilli\AppData\Local\Temp\konan_temp8580678556601557020\result.o:out:(.text+0x7e4d1): undefined reference to `GetUserNameExA'
clang++: error: linker command failed with exit code 1 (use -v to see invocation)

> Task :linkDebugSharedWindows FAILED

Execution failed for task ':linkDebugSharedWindows'.
> Compilation finished with errors

И я буквально не знаю, как это исправить.

...