Bendera untuk Mencipta Perduaan Statik di Golang
Apabila membina binari statik di Golang menggunakan pangkalan gores Docker, adalah penting untuk memasukkan kedua-dua CGO_ENABLED =0 dan -ldflags '-extldflags "-static"' bendera. Walaupun kedua-dua pilihan mungkin kelihatan berlebihan, ia memainkan peranan yang berbeza dalam mencapai perduaan statik.
CGO_ENABLED=0
Bendera ini melumpuhkan penggunaan kod C dalam masa jalan Go. CGO (C Go) membenarkan antara muka dengan kod C dalam program Go. Dengan menetapkan CGO_ENABLED=0, anda menghalang Go daripada cuba memaut dengan mana-mana pustaka C, memastikan binari yang dibina adalah mencukupi.
-ldflags '-extldflags "-static"'
Bendera ini mengarahkan pemaut untuk menggunakan pilihan -statik apabila memautkan perpustakaan luaran. -static memberitahu pemaut untuk memasukkan semua kebergantungan secara statik dalam binari, dan bukannya bergantung pada mereka untuk hadir dalam persekitaran masa jalan. Ini menghapuskan keperluan untuk carian perpustakaan masa jalan dan menjadikan binari bebas daripada ketersediaan pustaka luaran.
Dengan menggabungkan kedua-dua bendera, anda memastikan binari yang dibina adalah statik sepenuhnya, mengandungi kedua-dua masa jalan Go dan sebarang kebergantungan luaran yang diperlukan dalam kod boleh lakunya. Ini memastikan binari boleh dilaksanakan dalam mana-mana persekitaran tanpa memerlukan komponen masa jalan tambahan atau pemautan dinamik.
Atas ialah kandungan terperinci Bagaimana untuk Mencipta Perduaan Statik di Golang dengan Docker Scratch: CGO_ENABLED=0 dan -ldflags?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!