【发布时间】:2017-03-26 19:46:27
【问题描述】:
大家好。我对 Go 和 Gogland 很陌生。我有一个项目
- 我选择“运行种类”作为包 - 不仅可以运行主文件,还可以运行项目。为什么找不到主包??
- 如何将util.myprinter包导入main.go使用??
请帮帮我
【问题讨论】:
标签: go ide jetbrains-ide goland
大家好。我对 Go 和 Gogland 很陌生。我有一个项目
请帮帮我
【问题讨论】:
标签: go ide jetbrains-ide goland
首先,您的 Go workspace 的一般结构似乎是错误的。你需要让它看起来更像这样:
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 目录相对 的位置。所以在你正确设置你的工作空间后,你应该将Package path 设置为FirstSteps,因为该包的绝对路径将是$GOPATH/src/FirstSteps。如果稍后您想要运行 util 包,您可以将 Package path 指定为 FirstSteps/util 以便 GoLand 能够找到它。
【讨论】: