kotlinc出现unresolved reference错误的原因及解决方法
Kotlin编译错误:unresolved reference: A 原因及解决方法
错误原因
你仅单独编译了B/Main2.kt,但Kotlin编译器在本次编译过程中无法找到A包对应的代码——既没有预先编译好的A包字节码文件,也未将A/Main.kt纳入本次编译的源文件列表,因此编译器无法识别import A.gg1这个引用,进而抛出未解析引用的错误。
解决方法
方法1:一次性编译所有相关源文件
直接将两个源文件都传给kotlinc,让编译器同时处理依赖关系:
kotlinc A/Main.kt B/Main2.kt
如果需要生成字节码输出目录或可执行Jar包,可添加-d参数指定目标路径:
kotlinc A/Main.kt B/Main2.kt -d compiled-output/
方法2:分步编译并指定类路径
- 先编译
A包代码,生成对应字节码文件:
kotlinc A/Main.kt
执行后当前目录会生成A/MainKt.class文件。
2. 编译B/Main2.kt时,通过-cp(即classpath)参数指定当前目录,让编译器能找到A包的字节码:
kotlinc -cp . B/Main2.kt
方法3:直接编译根目录
编译器会自动扫描根目录下所有子目录的源文件,自动处理跨包依赖:
kotlinc .
内容的提问来源于stack exchange,提问作者VanechikSpace
相关产品推荐
相关产品推荐

