环境:Win10 + GO1.9.2
1.区别
①go build:编译go源码生成一个可执行文件;使用-o参数可以指定生成的可执行文件名称,如go build -o test.exe
②go install:在编译go源码后还会将可执行文件或库文件安装到约定的目录下。(生成出错或者生成位置问题,这里请看下面的注意事项!)
* 在src/DIR下编译出的可执行文件以其所在目录名(DIR)命名
* 将可执行文件安装到与src同级别的bin目录下,bin目录由go install自动创建
* 将可执行文件依赖的各种package编译后,放在与src同级别的pkg目录下
以上部分参考自:《也谈Go语言编程 – Hello,Go!》
2.注意事项:
①使用go env查看具体的环境变量配置,你会发现下面三个最重要的环境变量:
GOBIN为空;
GOPATH指向一个默认的项目路径;
GOROOT指向go的根目录。
②对在GOPATH目录下的项目进行go install,会自动(自动!)在项目对应位置生成bin/pkg等文件夹。
③在其它不是GOPATH目录下的项目进行go install,将会提示如下错误:go install: no install location for directory
解决办法两个:
*第一种(推荐):将项目路径增加到GOPATH中;GOPATH可以设置多个路径,这样每个GOPATH路径下的项目都能自动生成文件夹。
*第二种:设置环境变量GOBIN。
设置后所有项目(包括GOPATH中的项目!)go install后都将生成在GOBIN对应的目录以及同等目录下。
以上。