2015-10-20 31 views
6

我正在嘗試執行go install並用-o標誌重命名輸出。go安裝不識別「-o」標誌

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

謝謝。

+2

的'-o'標誌不爲'install'或'run'定義。文檔中有什麼錯誤? – JimB

+3

'go help install'給出'用法:去安裝[構建標誌] [包]'因此,假設爲'go build'定義的任何標誌在這裏被接受似乎是合理的。 – theeddieh

+2

'go build -h' list'構建標誌由構建,清理,獲取,安裝,列表,運行, 和測試命令共享:'僅在描述了-o和-i之後。 '-o'不是共享構建標誌之一。 – captncraig

回答

19

go build接受-o標誌,但go install不接受。

go install將始終輸出到$GOPATH/bin

如果你想安裝一個自定義的二進制名稱您GOPATH你可以做go build -o $GOPATH/bin/whatever,這將是大致相當於go install

+2

'go build'是不一樣的,因爲它在構建二進制文件後會丟棄所有已編譯的工件。通常推薦使用'go install'。 – JimB

+3

@JimB'go build -i'會在'pkg'文件夾中保存相關性工件。 – captncraig

+0

啊,是的,忘了那個。 – JimB