在JetBrains GoLand IDE中运行同包多文件Go应用失败如何解决
解决步骤
- 打开GoLand右上角的Run/Debug Configurations面板,确认Run kind设置为
Directory - 检查配置项中的
Directory路径,必须精确选择main.go和state.go共同存放的同级目录,不要选到父目录或子目录 - 同步将
Output directory、Working directory也设置为两个文件所在的目录 - 清空
Go tool arguments、Program arguments栏的额外自定义参数,先测试默认配置是否能正常运行 - 如果项目还未初始化Go模块,在当前目录的终端执行
go mod init 自定义项目名,完成模块初始化后再运行 - 额外排查:打开Settings->Go->GOROOT,确认GoLand已正确识别本地安装的Go SDK路径。
原理说明
你在命令行执行go run main.go state.go时,手动指定了同main包下的所有源文件参与编译,因此可以正常运行。如果GoLand的Run kind设置为File模式,只会编译单个指定的main.go,无法找到state.go中定义的printHello函数,就会报错。之前修改Run kind为Directory未生效,基本都是目录选择错误、未初始化go模块导致的。
内容的提问来源于stack exchange,提问作者west
相关产品推荐
相关产品推荐

