CGO_ENABLED デフォルトが True のままである理由
Go の環境変数である CGO_ENABLED を使用すると、開発者は Go プログラム内で C コードを操作できます。 CGO_ENABLED のデフォルトは true で、この機能がデフォルトで有効であることを示します。 GLIBC 更新で依存関係の問題が発生する可能性があるのに、なぜこのようなことになるのか不思議に思う人もいるかもしれません。
CGO_ENABLED の利点
CGO_ENABLED は開発に大きなメリットをもたらします。
デフォルト True の理由
時折依存関係の問題が発生するにもかかわらず、次の理由により CGO_ENABLED がデフォルトのままです。 :
代替シナリオ
CGO_ENABLED は、次の場合に無効にできます。
展開に関する考慮事項
CGO が有効なバイナリは小さい場合がありますが、実行には付属のホスト OS が必要です。これにより、展開イメージのサイズが大幅に増加する可能性があります。 Docker ベースのデプロイメントの場合、Alpine のような最小限の OS で CGO_ENABLED=0 を使用することは、完全な OS をバンドルする必要がなくなるため理想的です。
結論
CGO_ENABLED は残ります。 Go のデフォルトは、柔軟性、パフォーマンス上の利点、およびサードパーティ パッケージのサポートを提供します。特定の状況では依存関係の問題が生じる可能性がありますが、開発における利点と C コードとのインターフェース機能は、これらの懸念を上回ります。
以上がGo で CGO_ENABLED がデフォルトで True になるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。