我有一个带有 Windows 7 的 64 位系统。我构建了 kotlin-native,gradlew dist distPlatformLibs
然后进入了一个 msys2 终端,并通过 pacman 安装了 mingw sdl2 lib。通过 winpty 我执行俄罗斯方块示例应用程序build.bat
并获得以下编译异常:
$ winpty ./build.bat
Exception in thread "main" java.lang.Error: C:\Users\me\AppData\Local\Temp\tmp4397933690362265283.c:1:10: fatal error: 'SDL.h' file not found
at org.jetbrains.kotlin.native.interop.indexer.UtilsKt.ensureNoCompileErrors(Utils.kt:137)
at org.jetbrains.kotlin.native.interop.indexer.IndexerKt.indexDeclarations(Indexer.kt:902)
at org.jetbrains.kotlin.native.interop.indexer.IndexerKt.buildNativeIndexImpl(Indexer.kt:892)
at org.jetbrains.kotlin.native.interop.indexer.NativeIndexKt.buildNativeIndex(NativeIndex.kt:56)
at org.jetbrains.kotlin.native.interop.gen.jvm.MainKt.processCLib(main.kt:284)
at org.jetbrains.kotlin.native.interop.gen.jvm.MainKt.interop(main.kt:38)
at org.jetbrains.kotlin.cli.utilities.InteropCompilerKt.invokeInterop(InteropCompiler.kt:97)
at org.jetbrains.kotlin.cli.utilities.MainKt.main(main.kt:29)
在脚本中禁用@echo off
我可以看到上述异常在调用期间发生call cinterop -def ".\src\main\c_interop\sdl.def" -compilerOpts "-I\msys64\mingw64\include\SDL2" -target "mingw" -o sdl || exit /b