大家好。我对 Go 和 Gogland 很陌生。我有一个项目
- 我选择“运行类型”作为包 - 不仅运行主文件,而且运行项目。为什么它找不到主包?
- 如何将 util.myprinter 包导入 main.go 使用?
请帮我
首先,您的 Go工作区的一般结构似乎是错误的。你需要让它看起来更像这样:
D:
|-- go_projects
| |-- bin
| |-- pkg
| |-- src
| | |-- FirstSteps
| | | |-- main.go
| | | +-- util
| | | +-- myprinter.go
| | |-- SecondProject
| | |-- ThirdProject
...
其次,您的import
声明似乎是空的,我不知道 GoLand 是如何工作的,但是如果您想使用myprinter.go
文件中的任何内容,则需要导入util
包,假设myprinter.go
文件将其声明package
为util
顶部。
// FirstSteps/main.go
package main
import (
"FirstSteps/util"
)
func main() {
util.MyPrinterFunc()
}
当然,为了能够从util
那里使用任何东西,首先必须有一些东西......
// FirstSteps/util/myprinter.go
package util
func MyPrinterFunc() {
// do stuff...
}
编辑:对不起,我最初并没有真正回答你的问题。Cannot find package 'main'
由于我已经提到的错误工作区设置,您会收到错误消息。Package path
告诉 GoLand 您要运行的包相对于目录的$GOPATH/src
位置。所以在你正确设置你的 wrokspace 之后,你应该将它设置为Package path
,FirstSteps
因为该包的绝对路径将是$GOPATH/src/FirstSteps
. 如果稍后,您想要运行util
您指定的包Package path
,FirstSteps/util
以便 GoLand 能够找到它。