Masalah:
Apabila menyusun atur cara Go dengan berbilang pakej , anda mungkin menghadapi ralat jika sesetengah pakej mengandungi kebergantungan (cth., CGo) yang hanya terpakai untuk seni bina tertentu. Dalam kes sedemikian, anda mungkin ingin mengecualikan fail sedemikian semasa penyusunan untuk seni bina bukan sasaran.
Penyelesaian:
Bina kekangan dalam Go menyediakan cara untuk menyertakan atau kecualikan fail sumber berdasarkan pelbagai syarat, termasuk seni bina sasaran. Begini cara untuk menggunakannya:
Tambahkan Kekangan Binaan pada Fail:
Di bahagian atas fail sumber yang ingin anda kecualikan, tambahkan baris komen bermula dengan // build. Berikutan arahan ini, nyatakan syarat di mana fail harus disusun. Contohnya, untuk mengecualikan fail untuk semua seni bina kecuali Linux:
// +build !linux
Untuk mengecualikan fail untuk semua seni bina kecuali 386:
// +build !386
Untuk mengecualikan fail apabila CGo didayakan:
// +build !cgo
Gunakan Konvensyen Penamaan Fail:
Sebagai alternatif, anda boleh menggunakan konvensyen penamaan fail untuk menentukan kekangan binaan. Sebagai contoh, menamakan fail package_linux.go akan menyebabkan ia dimasukkan hanya semasa membina untuk Linux.
Contoh:
Pertimbangkan perkara berikut struktur direktori:
- main.go - linux.go - windows.go
Untuk menyusun atur cara untuk Linux, tambahkan kekangan binaan berikut pada linux.go:
// +build linux
Untuk menyusun atur cara untuk Windows, tambah binaan berikut kekangan kepada windows.go:
// +build windows
Dengan menggunakan kekangan binaan, anda boleh memastikan bahawa hanya kod yang diperlukan disertakan semasa penyusunan untuk seni bina yang berbeza, sekali gus menyelesaikan isu percubaan untuk menyusun fail khusus seni bina pada bukan -platform sasaran.
Atas ialah kandungan terperinci Bagaimana untuk Mengecualikan Fail Sumber Go Berdasarkan Seni Bina Semasa Penyusunan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!