2015-10-20 4 views
6

go installを実行し、-oフラグを付けて出力の名前を変更しようとしています。go installが "-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

とほぼ同じになります'install'または' run'のために定義されています。ドキュメンテーションのエラーは何ですか? – JimB

+3

'go help install'は' usage:go install [build flags] [packages] 'を与えていますので、' go build'のために定義されたフラグはここで受け入れられると考えるのが妥当です。 – theeddieh

+2

'go build -h' lists'ビルドフラグはbuild、clean、get、install、list、run、 とtestコマンドで共有されます: '-oと-iの後にのみ記述します。 '-o'は共有ビルドフラグの一つではありません。 – captncraig

答えて

19

go build-oフラグを受け入れますが、go installは受け入れません。

go install$GOPATH/bin

に常に出力あなたのgopathにカスタムバイナリ名をインストールしたい場合は、go build -o $GOPATH/bin/whateverを行うことができますし、それは `-o`フラグがないgo install

+2

'go build'は同じではありません。なぜならバイナリをビルドした後にコンパイルされたすべての成果物を捨てるからです。通常、 'go install'を優先することが推奨されます。 – JimB

+3

@JimB 'go build -i'は、' pkg'フォルダに依存関係成果物を保存します。 – captncraig

+0

ああ、忘れてしまった。 – JimB

関連する問題