作为一个有 Java 和 Grails 背景的人(30 年前曾经写过数百万行的 C 代码),我无法理解 Go 在 Windows 上需要使用固定的 GOPATH 路径,还能否可用。
安装 Go 后会创建以下目录结构:
c:\users\me\go\scr
\pkg
\bin
由于您希望拥有许多Go项目,因此它们似乎必须混合在同一src/kpg/bin目录中,相互污染。例如:
/src/project1/hello.go
/project2/hello.go
/pkg/xx
/bin/hello.exe
hello.exe将运行哪个hello.go文件?
除非我缺少基本的东西,否则这似乎很疯狂 - 所有完全独立的项目都需要共享相同的包和bin目录。 这意味着您不知道哪些包的哪些版本以及哪个exe文件属于哪个项目,而且可能存在大量冲突的余地。 我希望每个单独的go应用程序都有一个/src,/pkg和/bin(像java或grails甚至C),并且gopath是完全多余的,它可以相对于当前项目根目录(像在grails中一样)。
更棘手的是,为了工作,我们必须使用不同的目录,例如:
d:\work\project3
\project4
\package5
\go_utility6
\go_utility7
现在我们有6个不同的目录用于存放go程序。每次切换到不同的项目时更改路径是不可行的。另一个选择是将这6个路径添加到GOPATH中。假设所有7个go项目都写入相同的pkg和bin目录,那将会是一场灾难。
对于这种情况(至少在Windows上),是否有可行的解决方案?
如果我们需要为每个项目添加GOPATH路径,那么每个项目的文件结构应该是什么样子的?
例如,在xxx\go_utility6下,它是一个独立的命令行go应用程序,它的结构应该是什么?里面需要有src目录吗?这个目录需要gopath指向吗?它需要自己的pkg目录,还是应该使用c:\users\me\pkg目录?
go build
的输出是一个单一的二进制文件。将它放在任何你想要的地方,然后像执行普通程序一样执行它即可。 - Nidhin DavidGOPATH
,但这显然不一定是这个问题的答案。 - Ash