2015-10-20 10 views
6

Sto provando a fare un go install e rinominare l'output con il flag -o.go install non riconosce il flag "-o"

go install -o bar.exe src/foo.go 

Ma questo viene a mancare con l'errore:

flag provided but not defined: -o 
usage: install [build flags] [packages] 

go help build spettacoli -o come la bandiera di compilazione corretta per rinominare il binario di uscita. Non è stato detto che questo flag non è definito per go install.

go run -o bar.exe src/foo.go non riesce con lo stesso errore.

go build -o bar.exe src/foo.go opere. Ottengo il file bar.exe.

Quindi questo è solo un errore di documentazione o mi sono perso qualcosa?

La mia versione: go1.5 windows/386.

Grazie.

+2

Il flag '-o' non è definito per 'install' o' run'. Qual è l'errore nella documentazione? – JimB

+3

'go help install' fornisce' usage: go install [build flags] [packages] 'quindi sembra ragionevole presumere che qualsiasi flag definito per' go build' sia accettato qui. – theeddieh

+2

'go build -h' lists' I flag di compilazione sono condivisi da build, clean, get, install, list, run, e test test: 'solo after -o e -i sono descritti. '-o' non è uno dei flag di compilazione condivisi. – captncraig

risposta

19

go build accetta la bandiera -o ma non la go install.

go install emetterà sempre a $GOPATH/bin

Se si desidera installare un nome binario personalizzato al vostro gopath si può fare go build -o $GOPATH/bin/whatever e che sarà più o meno equivalente a go install

+2

'go build' non è la stessa, perché elimina tutti gli artefatti compilati dopo la creazione del binario. Di solito si consiglia di privilegiare 'go install'. – JimB

+3

@JimB 'go build -i' salverà gli artefatti di dipendenza nelle cartelle' pkg'. – captncraig

+0

ah sì, ho dimenticato. – JimB

Problemi correlati