gopl-zh.github.com/ch10/ch10-07-1.md

51 lines
2.0 KiB
Markdown
Raw Normal View History

2016-02-15 03:06:34 +00:00
### 10.7.1. 工作区结构
2015-12-09 07:45:11 +00:00
2016-02-15 03:06:34 +00:00
对于大多数的Go语言用户只需要配置一个名叫GOPATH的环境变量用来指定当前工作目录即可。当需要切换到不同工作区的时候只要更新GOPATH就可以了。例如我们在编写本书时将GOPATH设置为`$HOME/gobook`
2015-12-09 07:45:11 +00:00
```
$ export GOPATH=$HOME/gobook
$ go get gopl.io/...
```
2016-02-15 03:06:34 +00:00
当你用前面介绍的命令下载本书全部的例子源码之后,你的当前工作区的目录结构应该是这样的:
2015-12-09 07:45:11 +00:00
```
GOPATH/
src/
gopl.io/
.git/
ch1/
helloworld/
main.go
dup/
main.go
...
golang.org/x/net/
.git/
html/
parse.go
node.go
...
bin/
helloworld
dup
pkg/
darwin_amd64/
...
```
2016-02-15 03:06:34 +00:00
GOPATH对应的工作区目录有三个子目录。其中src子目录用于存储源代码。每个包被保存在与$GOPATH/src的相对路径为包导入路径的子目录中例如gopl.io/ch1/helloworld相对应的路径目录。我们看到一个GOPATH工作区的src目录中可能有多个独立的版本控制系统例如gopl.io和golang.org分别对应不同的Git仓库。其中pkg子目录用于保存编译后的包的目标文件bin子目录用于保存编译后的可执行程序例如helloworld可执行程序。
2015-12-09 07:45:11 +00:00
2016-02-15 03:06:34 +00:00
第二个环境变量GOROOT用来指定Go的安装目录还有它自带的标准库包的位置。GOROOT的目录结构和GOPATH类似因此存放fmt包的源代码对应目录应该为$GOROOT/src/fmt。用户一般不需要设置GOROOT默认情况下Go语言安装工具会将其设置为安装的目录路径。
2015-12-09 07:45:11 +00:00
2016-02-15 03:06:34 +00:00
其中`go env`命令用于查看Go语音工具涉及的所有环境变量的值包括未设置环境变量的默认值。GOOS环境变量用于指定目标操作系统例如android、linux、darwin或windowsGOARCH环境变量用于指定处理器的类型例如amd64、386或arm等。虽然GOPATH环境变量是唯一必需要设置的但是其它环境变量也会偶尔用到。
2015-12-09 07:45:11 +00:00
```
$ go env
GOPATH="/home/gopher/gobook"
GOROOT="/usr/local/go"
GOARCH="amd64"
GOOS="darwin"
...
```