在Windows中进行语言项目设置

时间:2014-04-22 16:07:14

标签: go

我是Go语言的新手,我想了解如何设置Go环境。

有两件事我还不太了解,我希望社区能在这里澄清一下。

什么是Go项目设置以及go路径如何工作?

我从窗口的角度问这个问题。

  • Go项目是否有标准的设置方式?
  • 为什么所有依赖关系都会转到一个位置?
  • 它是否可以在多个项目之间共享而不受版本控制?
  • 我应该将每个项目的go路径设置为项目文件夹吗?我不知道。

2 个答案:

答案 0 :(得分:2)

您的所有问题的答案都在这里:http://golang.org/doc/code.html 您应该真正阅读该页面,但总结一下您需要以这种方式构建go工作区的主要原因,就是go工具(包括编译器和自动下载库的工具)可以完成它所做的一切。 / p>

当您安装go程序时,它会自动放入$GOPATH/bin,当您构建库时,它会自动添加到$GOPATH/pkg,允许您拥有第三方库的集中位置,从而防止你要做不必要的图书馆副本。您的项目应位于$GOPATH/src/some_online_repository_location/project_name$GOPATH/src/project_name。路径的最后一部分是包名称,但您应该在http://golang.org/doc/effective_go.html#names

中阅读

示例:对于您在github上托管的项目hello,go工作区中的正确路径为:$GOPATH/src/github.com/youruser/hello/。这允许go工具使用命令go get自动从在线存储库下载库。示例:go get github.com/youruser/hello

维持这个"标准"允许go工具在没有任何配置的情况下轻松地在所有系统中工作,并且还具有使所有go项目以相同方式构建的副作用,因此当获得别人的代码时,你知道它是如何构建的并且你知道它将适用于你当前的工作空间。

阅读所有http://golang.org/doc/code.html文档,您应该更好地理解它。 希望它有所帮助,如果您有任何疑问,请发表评论。

答案 1 :(得分:1)

An Example

GOPATH = c:\gocode  
App has 4 code files = msg.go (main), web.go, channel.go, date.go  
App uses 1 external library = martini  

**Source Locations**:  
c:\gocode\src\app\msg\      (package is msg)  
... web.go, channel.go  
c:\gocode\src\app\msg\main\ (package is main)  
... msg.go                  
c:\gocode\src\lib\      (package is lib)  
... date.go  
c:\gocode\src\github.com\go-martini\martini (pkg is martini)  
... all martini lib files    

**Imports Used by File** ( Import Pkgs Not Files, All Paths Relative to $GOPATH/src )  
msg.go  
... import “app/msg”  > provides access to exported elements in web.go, channel.go  
... import “lib” > provides access to exported elements in date.go  
web.go  
... import “lib” > provides access to exported elements in date.go  
... import “github.com/go-martini/martini”  

Note:  
All files in the same pkg can access each other’s elements, even non exported ones.  
No import needed or allowed, just a plain reference, as thought it was in the same file.