Go のライブラリとバイナリ間で名前を共有する
ソフトウェア パッケージをビルドするとき、ライブラリとスタンドアロン バイナリが必要な場合があります。同じ名前。これは、コマンドとライブラリの両方として使用される tar などのツールに役立ちます。
最初は、単純なディレクトリ構造を試みるかもしれません。
src/ tar/ tar.go # belongs to package tar main.go # imports tar and provides a main function
ただし、このアプローチでは、 「tar」ではなく「tarbin」という名前のバイナリに変更します。これを解決するために、Go ドキュメントでは、コマンドとライブラリを別のディレクトリに分けることを推奨しています。
src/ tar/ tar.go # belongs to package tar tarbin/ main.go # imports tar and provides a main function
これにより、「tar」という名前のコマンドが生成されますが、ライブラリは「tarbin」と呼ばれるようになりました。
より洗練された解決策は、ライブラリ ディレクトリ内にバイナリをネストすることです:
src/ tar/ tar.go # tar library tar/ main.go # tar binary
この構造は、「tar」という名前のバイナリの両方を提供します。
優先順位に応じて、ネストされた構造内でライブラリとバイナリの位置を入れ替えることができます。
すべてのコードを 1 つのツリー内に配置すると、次のことが可能になります。ルート ディレクトリから go install ./... を実行してすべてのパッケージとサブパッケージをビルドするなどの利点があります。
以上が同じ名前の Go バイナリとライブラリを作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。