mirror of
https://github.com/gopl-zh/gopl-zh.github.com.git
synced 2024-12-26 14:56:21 +00:00
51 lines
2.0 KiB
Markdown
51 lines
2.0 KiB
Markdown
### 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或windows),GOARCH环境变量用于指定处理器的类型,例如amd64、386或arm等。虽然GOPATH环境变量是唯一必需要设置的,但是其它环境变量也会偶尔用到。
|
||
|
||
```
|
||
$ go env
|
||
GOPATH="/home/gopher/gobook"
|
||
GOROOT="/usr/local/go"
|
||
GOARCH="amd64"
|
||
GOOS="darwin"
|
||
...
|
||
```
|