go build を使わずにGoのプログラムをビルドすることはできるのでしょうか。 結論から言うとできます。 シェルスクリプトで go buildを自作してみたら、2週間ほどでkubectl[1]がビルドできるところまでいけました。 kubectl , uber-go/zap, spf13/cobra, golang/protobuf など有名どころのモジュールをビルドできる クロスコンパイルをサポート(下記4通り。CPUは amd64 ) Mac → Mac Mac → Linux Linux → Mac Linux → Linux ちなみに自作Goコンパイラ babygo と自作アセンブラ goas をこの自作ビルダでビルドしてみたら成功しました。なかなか感慨深いものがあります。 ビルド速度が遅かったり[2]キャッシュの扱いが雑なので実用性はないですが、学習用素材としての価値はあると思
![go build を使わずにGoプログラムをビルドする](https://cdn-ak-scissors.b.st-hatena.com/image/square/e2c5e9e99d142cd9bd5e1cd4030cebf6b1c53ddd/height=288;version=1;width=512/https%3A%2F%2Fres.cloudinary.com%2Fzenn%2Fimage%2Fupload%2Fs--kQGfFQfK--%2Fc_fit%252Cg_north_west%252Cl_text%3Anotosansjp-medium.otf_55%3Ago%252520build%252520%2525E3%252582%252592%2525E4%2525BD%2525BF%2525E3%252582%25258F%2525E3%252581%25259A%2525E3%252581%2525ABGo%2525E3%252583%252597%2525E3%252583%2525AD%2525E3%252582%2525B0%2525E3%252583%2525A9%2525E3%252583%2525A0%2525E3%252582%252592%2525E3%252583%252593%2525E3%252583%2525AB%2525E3%252583%252589%2525E3%252581%252599%2525E3%252582%25258B%252Cw_1010%252Cx_90%252Cy_100%2Fg_south_west%252Cl_text%3Anotosansjp-medium.otf_37%3ADQNEO%252Cx_203%252Cy_121%2Fg_south_west%252Ch_90%252Cl_fetch%3AaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyL2IzZGNkZjVhZGUuanBlZw%3D%3D%252Cr_max%252Cw_90%252Cx_87%252Cy_95%2Fv1627283836%2Fdefault%2Fog-base-w1200-v2.png)