Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengecualikan Fail Sumber Go Berdasarkan Seni Bina Sasaran?

Bagaimana untuk Mengecualikan Fail Sumber Go Berdasarkan Seni Bina Sasaran?

Patricia Arquette
Patricia Arquetteasal
2024-11-04 01:42:01906semak imbas

How to Exclude Go Source Files Based on Target Architecture?

Kecualikan Fail Sumber Go mengikut Seni Bina Semasa Menyusun

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:

  • Fail bernama *_GOOS dikecualikan apabila membina untuk OS lain.
  • Fail bernama *_GOARCH dikecualikan apabila membina untuk seni bina yang berbeza.
  • Fail bernama *_GOOS_GOARCH dikecualikan apabila membina untuk gabungan OS dan seni bina yang berbeza.

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn