Rumah > Artikel > pembangunan bahagian belakang > Cara menyusun projek Golang dengan betul menggunakan pakej yang mengandungi kod C
Saya mula menulis projek di Golang dan serta-merta menghadapi masalah. Saya perlu menyambung ke perkakasan daripada kod saya dan saya mempunyai pemandu dan vendor yang menyediakan pembalut Golang. Penerangan sambungan pembungkus mengatakan bahawa kod itu perlu diletakkan dalam direktori src projek (saya tidak menggunakan direktori sedemikian, tetapi saya meletakkan fail mengikut nama pakej dalam direktori ./internal/fptr10 dan dalam direktori utama saya. go ia telah berjaya diimport). Saya melihat kaedah dalam pakej ini dalam IDE GoLand, tetapi apabila saya cuba menyusun projek (saya memanggil fungsi pertama yang harus mencipta contoh pemacu, dipanggil New()) - saya mendapat ralat: fptr10. New() tidak ditakrifkan. Terdapat dua fail pengepala yang ditulis dalam C dalam direktori pembalut dan saya tahu ada sesuatu yang tidak kena dengannya tetapi saya tidak faham cara menyusunnya dengan betul.
Keseluruhan projek, serta perpustakaan itu sendiri, boleh didapati di https://github.com/Natrix31/KKTWatcher P.S.: Saya bekerja di bawah Windows
Saya cuba menyusun projek dari IDE dan dari baris arahan menggunakan go build dan go install Tetapi hasilnya adalah sama. Program ini gagal untuk menyusun dan memberikan ralat: New() undefined
Untuk kes ini, anda boleh meletakkan kod c ke dalam modul go, cuma pastikan anda mempunyai pengkompil c dipasang di platform anda dan Gunakan ulasan prakata untuk petikan.
main.go
/* #include <stdio.h> #include <math.h> #include "calc.h" */ import "c" func main() { fmt.println(c.add(1, 2)) }
calc.c
:
#include "calc.h" int add(int a, int b) { return a + b; }
calc.h
:
int add(int a, int b);
go telah mendayakan cgo secara lalai, jadi bina sahaja:
go build -o main.out .
Atas ialah kandungan terperinci Cara menyusun projek Golang dengan betul menggunakan pakej yang mengandungi kod C. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!