gopl-zh.github.com/ch10/ch10-07-1.md
2016-02-15 11:06:34 +08:00

51 lines
2.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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