2016-04-11 13 views
0

go build github.com/.../fooを任意のディレクトリから実行すると、コンパイルされたバイナリはコマンドを実行したディレクトリに配置されます。 go build /github.com/.../cmd/...を実行すると、コンパイルされたバイナリがすべて現在のディレクトリに表示されると予想されました。しかし、彼らはしません。複数のバイナリを現在のディレクトリに構築する

このパッケージの複数の/すべてのバイナリを現在の作業ディレクトリにコンパイルするにはどうすればよいですか?

答えて

1

プロジェクトのファイルパス(パッケージ名ではなく)を使用してバイナリをコンパイルして、現在のディレクトリにバイナリを生成することができます。例えば

$ go build ~/Go/src/github.com/.../cmd 

とバイナリは、あなたの現在のディレクトリになります。 go build -hから

+0

アイデアはパス 'github.com/の下にあるすべてのものを構築することです.../cmd/... 'を一度に実行してください。バイナリではありません – soupdiver

+0

ディレクトリパスに" ... "を追加してください。 Goでは、「x/...」は「x /の下のすべてのパス」を意味します。 – cd1

+0

私の質問で説明したように: '... 'を追加すると、NOファイルは現在のディレクトリに置かれます。ビルドするために正確なバイナリを指定した場合にのみ、それが私の現在のディレクトリに置かれます。 – soupdiver

0

:複数のパッケージまたは単一の非メインパッケージをコンパイルする際

、 ビルドはパッケージをコンパイルしますが はパッケージのみを構築することができることを確認として、結果のオブジェクトを破棄します。

しかし、あなたは同じ結果を達成するために、このワンライナーを使用することができます(直接CMD下のバイナリのみが構築されます): find $GOPATH/src/github.com/.../cmd -mindepth 1 -maxdepth 1 | xargs -n1 go build

関連する問題