Mengapa Menyusun dengan CGO_ENABLED=0 Ditanggung Kelembapan
Walaupun tidak menggunakan pengikatan C, menyusun dengan CGO_ENABLED=0 nyata memperlahankan penyusunan. Untuk memahami puncanya, kita mesti menyelidiki mekanisme yang sedang dimainkan.
Pakej perpustakaan standard dibina menggunakan bendera kompilasi yang telah ditetapkan. Apabila CGO_ENABLED ditetapkan kepada 0, bendera binaan diubah suai, menjadikan pakej pra-bina tidak serasi. Akibatnya, majoriti pustaka standard mesti dibina semula.
Walaupun "go build -i" boleh memasang pakej yang dibina dengan bendera baharu, ia tidak menyelesaikan sepenuhnya isu tersebut. Memasang pakej yang dibina dengan CGO_ENABLED=0 mempercepatkan binaan masa hadapan dengan bendera yang sama, tetapi menghalang binaan tanpanya.
Kaedah pemasangan lalai untuk pakej pra-bina adalah tidak cekap, dengan semua pakej disimpan dalam direktori yang sama dengan yang serupa nama tanpa mengira konfigurasi binaan mereka. Untuk mendayakan binaan pantas dengan bendera yang berbeza-beza, "go build -i" hendaklah digabungkan dengan bendera "-installsuffix" atau "-pkgdir". Dengan memperuntukkan direktori unik untuk setiap mod kompilasi, binaan berasingan dengan bendera berbeza boleh ditampung dengan lancar.
Atas ialah kandungan terperinci Mengapa Melumpuhkan CGO Melambatkan Kompilasi Walaupun Tanpa Menggunakan C Bindings?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!