Kotlin Native使用readln函数报错退出值3,求解决方案
解决Kotlin Native中readln()运行报错退出值3的问题
原因分析
Windows环境下,IDEA运行Kotlin Native debug可执行文件时,默认未分配交互式控制台,readln()尝试读取标准输入失败,导致程序返回非零退出值3。直接赋值跳过输入读取能正常执行,也验证了这一问题根源。
解决方案
1. 手动执行可执行文件
找到编译生成的exe路径:E:\codes\ktNative\build\bin\native\debugExecutable\ktNative.exe,可通过两种方式运行:
- 直接双击该exe文件
- 打开CMD或PowerShell,切换到该目录后执行:
此时程序会在交互式终端中等待输入,.\ktNative.exereadln()可正常工作。
2. 修改IDEA运行配置
- 打开IDEA的Run/Debug Configurations面板
- 找到对应的Kotlin Native运行项
- 在Configuration标签页中,勾选Run in terminal选项
- 保存配置后重新运行,IDEA会调用系统终端启动程序,支持交互式输入。
3. 确认Gradle目标平台配置
检查build.gradle.kts中的Kotlin Native目标平台是否为Windows适配的mingwX64,示例配置:
plugins { kotlin("multiplatform") version "1.9.0" } kotlin { mingwX64("native") { binaries { executable { entryPoint = "main" } } } sourceSets { val nativeMain by getting } }
错误的平台配置可能导致输入输出异常,确保目标平台与Windows环境匹配。
内容的提问来源于stack exchange,提问作者Biee Sky
相关产品推荐
相关产品推荐

