ライブラリを構築していますが、スタンドアロンのバイナリとしても使用できるようにしたいと考えています。
たとえば、Tarの実装を構築しているとしましょう。Tarは一般的にコマンドとして使用されますが、ライブラリとしても使用できます。直感的に、私は次のようなことをします:
src/
tar/
tar.go # belongs to package tar
main.go # imports tar and provides a main function
しかし、これはうまくいかないようです。ドキュメントから、「コマンド」はライブラリとは別の名前を付ける必要があるようです。そこに示されている例をこの例に当てはめると、次のディレクトリ構造になります。
src/
tar/
tar.go # belongs to package tar
tarbin/
main.go # imports tar and provides a main function
ただし、これにより、tarbin
ではなくtar
、と呼ばれるコマンドが作成され$GOPATH/bin
ます。私が見つけた回避策は実行することですgo build -o $GOPATH/bin/tar tar
が、私はひどく間違ったことをしているように感じます。もっと良い方法はありますか?
注:tar
これが標準ライブラリに含まれていることはよく知っています。例としてのみ使用しています。