Dalam Go, kadangkala perlu mengecualikan fail sumber tertentu apabila menyusun berdasarkan seni bina sasaran. Contohnya, apabila membangunkan atur cara untuk Windows yang menggunakan CGo untuk berinteraksi dengan fungsi asli, menyusun pada Linux mungkin mengakibatkan isu pergantungan, seperti kehilangan fail pengepala.
Untuk menangani perkara ini, Go menggunakan kekangan binaan, yang membenarkan pembangun untuk menentukan syarat di mana fail harus dimasukkan ke dalam pakej. Dengan memanfaatkan kekangan binaan, anda boleh mengecualikan fail sumber tertentu berdasarkan seni bina sasaran.
Menentukan Kekangan Bergantung kepada Seni Bina:
Untuk mengecualikan seni bina tertentu daripada kompilasi, gunakan sintaks berikut:
// +build !<architecture>
Sebagai contoh, untuk mengecualikan seni bina x86 64-bit:
// +build !amd64
Sebagai alternatif, anda boleh menentukan berbilang seni bina untuk dikecualikan menggunakan koma:
// +build !amd64,!arm64
Menggunakan Kekangan Hierarki:
Dengan keadaan yang kompleks, anda boleh menggunakan kekangan hierarki:
// +build linux // +build amd64 // +build solaris // +build 386,!go1.12
Hierarki ini menunjukkan bahawa untuk set kekangan pertama, kedua-dua Linux dan amd64 mesti berpuas hati, manakala dalam set kedua, Solaris diperlukan dan sama ada versi 386 atau Go sebelum 1.12 boleh dipenuhi.
Pengecualian oleh Penamaan Fail:
Selain membina kekangan, anda boleh mengecualikan fail berdasarkan konvensyen penamaannya:
Contoh:
Untuk mengecualikan fail sumber bernama windows.c semasa membina di Linux, masukkan kekangan binaan berikut di bahagian atas fail:
// +build ignore
Sebagai alternatif, namakan semula fail kepada windows_windows.c .
Dengan menggunakan kekangan binaan dan konvensyen penamaan fail, anda boleh mengecualikan fail sumber tertentu secara berkesan berdasarkan seni bina sasaran semasa menyusun atur cara Go, membenarkan binaan yang disesuaikan untuk persekitaran yang berbeza.
Atas ialah kandungan terperinci Bagaimana untuk Mengecualikan Fail Sumber Go Berdasarkan Seni Bina Sasaran?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!