4

大家好。我对 Go 和 Gogland 很陌生。我有一个项目 Gogland 的 Go 项目

  1. 我选择“运行类型”作为包 - 不仅运行主文件,而且运行项目。为什么它找不到主包?
  2. 如何将 util.myprinter 包导入 main.go 使用?

请帮我

4

1 回答 1

10

首先,您的 Go工作区的一般结构似乎是错误的。你需要让它看起来更像这样:

D:
|-- go_projects
|    |-- bin
|    |-- pkg
|    |-- src 
|    |    |-- FirstSteps
|    |    |    |-- main.go
|    |    |    +-- util
|    |    |         +-- myprinter.go
|    |    |-- SecondProject
|    |    |-- ThirdProject
...

其次,您的import声明似乎是空的,我不知道 GoLand 是如何工作的,但是如果您想使用myprinter.go文件中的任何内容,则需要导入util包,假设myprinter.go文件将其声明packageutil顶部。

// 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 pathFirstSteps因为该包的绝对路径将是$GOPATH/src/FirstSteps. 如果稍后,您想要运行util您指定的包Package pathFirstSteps/util以便 GoLand 能够找到它。

于 2017-03-26T20:16:31.777 回答