GOPATH 用来设置个人工作区间对应的目录。里面可以存放编写的代码、编译文件、编译后的可执行文件
GOPATH 不能指向 Go 的安装目录。
默认的 $GOPATH 是 $HOME/go。也可以自定义,例如在 Linux 中:
export GOPATH=$HOME/mygo
注意,1.8 之前的版本必须手动指定 GOPATH。
GOPATH 包含3个目录,分别是src
、pkg
、bin
。
示例1
$GOPATH 目录结构:
$ tree .
.
├── bin
├── pkg
└── src
└── hello
└── hello.go
hello.go 内容如下:
package main
import "fmt"
func main() {
fmt.Printf("hello, world\n")
}
使用 go build :
在 $GOPATH
构建:
$ go build src/hello/hello.go
$ tree .
.
├── bin
├── hello
├── pkg
└── src
└── hello
└── hello.go
$ ./hello
hello, world
可以看到 go build
生成的文件会放在当前目录中。
如果当前目录有 go 文件,build
后不必跟文件路径:
$ cd src/hello/
$ go build
$ ls
hello hello.go
$ ./hello
hello, world
使用 go install :
go install
会先编译,然后将编译生成的可执行文件放在 bin 目录。
$ cd src/hello
$ ls
hello.go
$ go install
$ tree ../..
../..
├── bin
│ └── hello
├── pkg
└── src
└── hello
└── hello.go
可以看到 bin 目录下多了一个 hello
文件。
参考
https://github.com/golang/go/wiki/SettingGOPATH