GOPATH以及目录结构
GOPATH环境变量
-
默认在~/go(unix,linux),%USERPROFILE%\gp(windows)
-
官方推荐:所有项目和第三方库都放在同一个GOPATH下
- 其实也可以将每个项目放在不同的GOPATH下
-
查询GOPATH命令
echo $GOPATH
go get获取第三方库
-
go get + 包地址
- 由于很多包在国外,无法下载,所以可以使用gopm
-
gopm
- go get -v github.com/gpmgo/gopm来下载gopm,这里的-v能看到执行详情
- 下载好gopm后,会放在在$GOPATH目录下,由于配置了环境,所以可以直接使用gopm命令
- gopm get 包地址,这样就可以下载了
- -g表示下载到$GOPATH下
- -v表示展示下载详情
- -u表示更新
- 举例: gopm get -g -v golang.org/x/tools/cmd/goimports
- 下载好后,可以go build 编译包,或者不下载,直接go build golang.org/x/tools/cmd/goimports,这样会下载好后进行编译
- 这只是编译,但是执行需要./编译后的产物,并没有到$GOPATH的bin下
- 所以,应该使用 go install golang.org/x/tools/cmd/goimports,是的下载并编译,然后安装到$GOPATH的bin下
-
GOPATH下目录结构
- src
src下是下载下来的库(包)
- git repository 1
- git repository 2
- …
- pkg
pkg下是build出来的中间过程
- git repository 1
- git repository 2
- …
- bin
可执行文件,只要你配置了环境变量,那么这里的文件就可以在任何地方用命令执行
- 可执行文件1
- 可执行文件2
编译自己的文件
-
go build 来编译
-
go install 产生pkg文件和可执行文件
-
go run 直接编译运行
-
go install 某个目录,会编译目录下的可执行文件,或者所有子目录下的可执行文件,然后生成的可执行文件会放到$GOPATH的bin下,那在任何地方都可以执行可执行文件了重点
-
./… 表示当前目录下的所有文件 加-v显示详情
如果有如下错误:
go install: no install location for .go files listed on command line (GOBIN not set)
那么很可能是GOBIN没有配置,可以用go env查看下GOBIN是否为空
详细查看文章:https://studygolang.com/articles/2233