mirror of
https://github.com/gopl-zh/gopl-zh.github.com.git
synced 2024-12-27 07:16:22 +00:00
54 lines
1.9 KiB
Markdown
54 lines
1.9 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. 其中 pkg 子目録用於保存編譯後的包的目標文件, bin 子目録用於保存編譯後的可執行程序, 例如 helloworld 程序.
|
|
|
|
第二個環境變量 GOROOT 用來指定Go的安裝目録, 還有它自帶的標準庫包的位置. GOROOT 的目録結構和 GOPATH 類似, 因此存放 fmt 包的源代碼目録爲 $GOROOT/src/fmt. 用戶一般不需要設置 GOROOT, 默認情況下, Go工具會設置爲安裝的位置.
|
|
|
|
其中 `go env` 命令用於査看工具涉及的所有環境變量的值, 包括未設置環境變量的默認值. GOOS 用於指定目標操作繫統(例如 android, linux, darwin, 或 windows), GOARCH 用於指定處理器的類型, 例如 amd64, 386, 或 arm. 雖然 GOPATH 是唯一必需要設置的, 但是其它的也有偶爾用到.
|
|
|
|
```
|
|
$ go env
|
|
GOPATH="/home/gopher/gobook"
|
|
GOROOT="/usr/local/go"
|
|
GOARCH="amd64"
|
|
GOOS="darwin"
|
|
...
|
|
```
|
|
|
|
|