该文件说没有什么build
VSinstall
呢
我的期望是,它像make install
; 即,它将已编译的内容放入最终位置(/usr/local/bin/my_new_toy
或其他位置),但似乎将内容放入GOROOT/bin
我可以告诉我去做make install
-即把东西放在别处吗?还是只写一个makefile(请告诉我不)?
Answers:
如果要将二进制文件转到特定位置,则可以使用环境变量GOBIN
:
bin /目录包含已编译的命令。每个命令都以其源目录命名,但仅命名为最后一个元素,而不是整个路径。也就是说,将源代码在DIR / src / foo / quux中的命令安装到DIR / bin / quux中,而不是DIR / bin / foo / quux中。去除了foo /,以便您可以将DIR / bin添加到PATH中以获取安装的命令。如果设置了GOBIN环境变量,则将命令安装到其命名的目录中,而不是DIR / bin。
来源:http : //golang.org/cmd/go/#hdr-GOPATH_environment_variable
GOBIN=/usr/local/bin/ go install
如果您想要每个项目的bin/
目录,则可以简单地将项目路径附加到GOPATH
,但是您必须在代码下面$project-path/src/
,go install
并将所有二进制文件放入$project-path/bin
。
export GOPATH=/dir1:/dir2:/dir3
如果未设置GOBIN,则来自/ dir1 / src的二进制文件以/ dir1 / bin结尾,来自/ dir2 / src的二进制文件以/ dir2 / bin结尾,依此类推(并且$ GOROOT / src的二进制文件以$ GOROOT结尾。 / bin)。
来源:https : //groups.google.com/forum/#!topic/golang- nuts/ -mN8R_Fx-7M
您也可以使用(感谢JimB):
go build -o /path/binary-name
blah.a
)安装到$GOPATH/pkg/
。
go build
与 go install:
go build
只是编译可执行文件并将其移动到目标位置。go install
还有一点。它将可执行文件移到$GOPATH/bin
并缓存所有导入到的非主要包$GOPATH/pkg
。如果源尚未更改,则高速缓存将在下一次编译期间使用。
go build
和之后的软件包树go install
:.
├── bin
│ └── hello # by go install
└── src
└── hello
├── hello # by go build
└── hello.go
go install
还建立?还是我需要go build
在安装之前运行?
go install
足够了,但是它的执行文件在bin/
目录中创建
go build -o