16

我已经在我的 Eclipse 中安装了 goclipse 并创建了一个新的 go 项目。

现在这就是我所拥有的:

在此处输入图像描述

我有 hello.go 看起来像这样:

package main

import "fmt"

func main() {
     fmt.Println("Hello")
}

然后我按下运行按钮,或者右键单击文件 hello.go,然后运行,它什么也没给出。此外,它在 bin 文件夹中也是空的。

然后我按下run configurations按钮,那里几乎是空的,只有一个项目名称。它给:

Given Go package not found.

这是我对 Go 的偏好: 在此处输入图像描述

我注意到 GOROOT 和 GOPATH 都与资源管理器中列出的不同,但是一旦我将它们更改为 C:\Go\src\pkg 或 C:\Go\src,应用和确定按钮就会被禁用。此外,我也没有 C:\Go\src\pkg 文件夹。

我可以go installgo build在命令行中,但我想将 eclipse 用于另一个更大的项目。它是 windows 7,eclipse 版本是 Luna Service Release 1 (4.4.1)。谢谢你。

编辑:现在我有以下配置,它工作正常: Go 安装在 c:\Go 中的 Preferences: GOROOT:C:\Go, GOPATH: C:\Users\Tiina\go_workspace Preferences 中的其余部分是自动填写的. helloTest 项目位于 C:\Users\Tiina\go_workspace\src\helloTest hello.go 位于 C:\Users\Tiina\go_workspace\src\helloTest\hello.go 也许是因为我从现有代码创建了一个项目,并且有东西留下了,它会自动添加另一个 GOPATH,在 Preferences 中删除它。

4

3 回答 3

14

如果GOROOT指的是 go 的安装位置(C:\Go),那么您需要确保:

  • GOPATH不同于GOROOT(这很重要,因为GOROOT/[src|pkg|bin]是 Go 语言本身的文件夹,而不是您自己的资源)
  • GOPPATH指向一个文件夹,所有不同的 Go 项目都将驻留在该文件夹下(例如C:\Users\yourName\Go:定义一个工作区
  • 您的 Eclipse 项目是在GOPATH\src\myproject

请参阅“如何编写 Go 代码”以确保您的安装和项目源尊重预期的组织。


OP Tiina在评论中报告:

现在它起作用了,但我注意到两件奇怪的事情。

  • 首先我做了什么:我将helloTest文件夹移动到C:\Users\Tiina\go_workspace\src,所以现在它位于C:\Users\Tiina\go_workspace\src\helloTest.
  • 然后我从现有代码创建项目。其他一切都没有改变。现在我GOPATH在资源管理器中有两个,一个是C:\Users\Tiina\go_workspace\src,另一个是C:\Users\Tiina\go_workspace\helloTest\src
    后者一开始是不存在的

我怀疑goclipse所做的是为每个项目定义一个GOPATH(或完成现有的GOPATH)。
如果您创建或导入项目,它将定义/完成 如果您 hello.go 在该GOPATH文件夹中,那么它应该按预期构建和工作。<that project/src>
<that project/src/>

goclipse的用户指南“项目结构”提到:

项目位置不是任何GOPATH条目的一部分。
在这种情况下,项目位置将作为条目隐式添加到 中,并且项目中将使用带有、和目录GOPATH的 Go 工作区结构。binpkgsrc

请注意,项目的隐式GOPATH条目将仅适用于该项目中的源模块。它对其他 Goclipse 项目不可见(除非该条目明确添加到 global GOPATH)。

在该src文件夹中,您可以创建 Go 源文件,这些文件将被编译为库包(并放入pkg)或可执行文件(并放入bin

于 2014-12-15T07:06:16.097 回答
1

这是一个人需要做的。必须始终遵循 GO 的目录结构约定。在 Eclipse 中,一旦创建了一个新项目,只需通过右键单击 src 文件夹在 src 目录下创建一个“新文件夹”。现在在这个文件夹下创建一个新的 GO 文件。我在我的 MAC 上运行它时遇到了问题,但按照上述步骤可以解决。

  • 维沙尔 (www.vishalpandya.com)
于 2017-09-19T08:17:55.457 回答
0

请尊重这样一个事实,如果您在 Eclise/GoClipse 中工作时更改 GOPATH,则必须退出/重新启动 Eclipse,以便 Eclipse 重新读取新的环境变量。

于 2019-11-17T16:46:28.733 回答