Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Panggil Kod Go daripada Projek C Saya?
Merapatkan Jurang: Kod Panggilan Go daripada Projek C
Dalam bidang kejuruteraan perisian, integrasi merentas bahasa memainkan peranan penting dalam memperluaskan keupayaan projek sedia ada. Dengan kemunculan Go 1.5, prospek menggunakan kod Go daripada program C dengan lancar telah menjadi kenyataan. Artikel ini menyelidiki aspek praktikal untuk mencapai penyepaduan ini, menerangkan nuansa dan amalan terbaik yang terlibat.
Membina Arkib C-Callable Go
Untuk memberikan kod Go boleh diakses oleh program C, bendera -buildmode=c-archive mesti digunakan semasa penyusunan. Bendera ini menjana pustaka statik boleh panggil C (.a) dan fail pengepala yang berkaitan (.h). Dalam kod Go, fungsi tertentu mesti ditanda untuk eksport menggunakan //komen eksport. Selain itu, pakej yang mengandungi fungsi ini hendaklah dinamakan utama dan mentakrifkan fungsi utama yang kosong.
Sebagai contoh, pertimbangkan fail foo.go berikut:
package main import ( "C" "fmt" ) //export PrintInt func PrintInt(x int) { fmt.Println(x) } func main() {}
Mengkompil untuk C Keserasian
Untuk membina arkib dan pengepala boleh panggil C, laksanakan perkara berikut arahan:
go build -buildmode=c-archive foo.go
Menggunakan Fungsi Go dalam C
Fail pengepala yang dijana menyediakan pengisytiharan yang diperlukan untuk mengakses fungsi Go yang dieksport dalam C. Dalam program C foo yang disertakan .c, fungsi PrintInt boleh digunakan sebagai berikut:
#include "foo.h" int main(int argc, char **argv) { PrintInt(42); return 0; }
Pemautan dan Pelaksanaan
Untuk mencipta kod Go dan C pemautan boleh laku terakhir, susun atur cara C dengan arahan berikut:
gcc -pthread foo.c foo.a -o foo
Kesimpulan
Dengan memanfaatkan keupayaan yang diperkenalkan dalam Go 1.5, pembangun boleh menyepadukan kuasa dan kemudahan Go dengan lancar ke dalam projek C sedia ada. Proses ini melibatkan penandaan fungsi Go untuk eksport, menyusunnya ke dalam arkib serasi C dan menggunakan fungsi ini dalam kod C menggunakan fail pengepala yang dijana. Dengan pengetahuan ini, pengaturcara boleh memanfaatkan kekuatan gabungan kedua-dua bahasa, membuka kunci kemungkinan baharu dan mempertingkatkan kefungsian sistem perisian mereka.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Panggil Kod Go daripada Projek C Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!