英文:
go install does not recognize "-o" flag
问题
我正在尝试使用-o
标志进行go install
并重命名输出文件。
go install -o bar.exe src/foo.go
但是这会导致以下错误:
flag provided but not defined: -o
usage: install [build flags] [packages]
go help build
显示-o
是正确的构建标志来重命名输出二进制文件。没有提到这个标志在go install
中未定义。
go run -o bar.exe src/foo.go
也会导致相同的错误。
go build -o bar.exe src/foo.go
可以正常工作。我得到了bar.exe。
所以这只是文档错误,还是我漏掉了什么?
我的版本是:go1.5 windows/386
。
谢谢。
英文:
I'm trying to do a go install
and rename the output with the -o
flag.
go install -o bar.exe src/foo.go
But this fails with the error:
flag provided but not defined: -o
usage: install [build flags] [packages]
go help build
shows -o
as the correct build flag to rename the output binary. There is no mention that this flag is not defined for go install
.
go run -o bar.exe src/foo.go
fails with the same error.
go build -o bar.exe src/foo.go
works. I get bar.exe.
So is this just an error of documentation, or have I missed something?
My version: go1.5 windows/386
.
Thanks.
答案1
得分: 48
go build
命令接受 -o
标志,但 go install
命令不接受。
go install
命令总是将输出到 $GOPATH/bin
目录。
如果你想将自定义的二进制文件名安装到你的 GOPATH 中,可以使用 go build -o $GOPATH/bin/whatever
命令,这大致等同于 go install
。
英文:
go build
accepts the -o
flag but go install
does not.
go install
will always output to $GOPATH/bin
If you want to install a custom binary name to your gopath you can do go build -o $GOPATH/bin/whatever
and that will be roughly equivalent to go install
答案2
得分: 0
你可以伪造-o
标志,如果你只关心位置而不关心二进制文件的名称。为安装命令定义GOBIN
:
GOBIN=`readlink -f my/location` go install some/persons/go-package
注意:这对于交叉编译的二进制文件无效。
英文:
You can fake the -o flag, if all you care about is the location, and not the name of the binary. Define GOBIN
for the install command:
GOBIN=`readlink -f my/location` go install some/persons/go-package
Caveat: This doesn't work for cross-compiled binaries.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论