ホームページ >バックエンド開発 >Golang >同じ名前の Go バイナリとライブラリを作成するにはどうすればよいですか?

同じ名前の Go バイナリとライブラリを作成するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-30 19:55:111061ブラウズ

How Can I Create a Go Binary and Library with the Same Name?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。