2014-06-05 28 views
17

文档说没有什么build VS install确实去安装做什么?

我的期望是,它像make install;即它需要编译的东西,并在其最终位置(/usr/local/bin/my_new_toy或其他)提出,但它似乎把事情GOROOT/bin

我可以告诉去做一个make install - 即把东西放在别处?或者我只写一个makefile(请告诉我不)?

回答

9

如果你想二进制文件去一个特定的位置,你可以使用环境变量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 
+3

你也可以直接用'去建立指定输出文件名 - o' – JimB

+0

也是,我们会为了完整而将其添加到答案中。 – OneOfOne

+0

所以去安装是一样的去建立-o $ GOPATH/bin/? – pm100

相关问题