ホームページ > バックエンド開発 > Golang > 「go build」と「go install」の違いは何ですか?また、実行可能ファイルはどこにインストールされますか?

「go build」と「go install」の違いは何ですか?また、実行可能ファイルはどこにインストールされますか?

DDD
リリース: 2024-12-03 18:41:11
オリジナル
317 人が閲覧しました

What's the Difference Between `go build` and `go install`, and Where Do They Install Executables?

「go install」の詳細: ビルドとインストールのプロセスを解明する

ドキュメントでは説明されていないことが多い、go build と go の区別インストールするときに開発者が困惑する可能性があります。ほとんどの人は、go install がコンパイルされた実行可能ファイルを指定された場所に再配置することで make install の機能をミラーリングすることを期待していますが、結果が GOROOT/bin ディレクトリに存在することに驚いています。この記事は、両方のコマンドの目的と動作を明確にすることを目的としています。

実際に何が起こるのか?

go build は、シンプルなコンパイル ツールです。実行可能ファイルをアセンブルして、指定された保存先に保存するだけです。一方、 go install は、もう少し複雑なプロセスを実行します。

  • go build と同じように、実行可能ファイルをコンパイルします。
  • 実行可能ファイルを $GOPATH/bin に移動します。
  • プログラムによってインポートされたすべての非メインパッケージをキャッシュします。 $GOPATH/パッケージ。このキャッシュは、ソース コードが変更されていない限り、後続のコンパイル中に利用されます。

パッケージ ツリーの視覚化

go build とgo install では、次のパッケージ ツリーを考慮してください:

.
├── bin
│   └── hello  # by go install
└── src   
    └── hello
        ├── hello  # by go build
        └── hello.go
ログイン後にコピー

hello 実行可能ファイルは go build によってコンパイルされ、は src/hello ディレクトリにありますが、 go install はそれを $GOPATH/bin に配置し、依存関係キャッシュを $GOPATH/pkg に保存します。

インストール場所はカスタマイズできますか?

make install とは異なり、go install にはカスタム インストール ディレクトリを指定するオプションがありません。このレベルの制御を実現するには、ビルドとインストールのプロセスを定義する Makefile を作成する必要があります。ただし、このアプローチは一般的に推奨されません。

追加のコンテキスト

さらに詳しい情報については、次のトピックに関する公式ドキュメントを参照してください。

  • [行くbuild](https://go.dev/ref/cmd/go#hdr-Compile_packages_and_dependency)
  • [go install](https://go.dev/ref/cmd/go#hdr-Install_and_build_packages_and_dependency)

以上が「go build」と「go install」の違いは何ですか?また、実行可能ファイルはどこにインストールされますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート