Cara menyusun projek Golang dengan betul menggunakan pakej yang mengandungi kod C

WBOY
Lepaskan: 2024-02-06 10:24:03
ke hadapan
958 orang telah melayarinya

如何使用包含 C 代码的包正确编译 Golang 项目

Kandungan soalan

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


Jawapan betul


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))
}
Salin selepas log masuk

calc.c

#include "calc.h"

int add(int a, int b) {
    return a + b;
}
Salin selepas log masuk

calc.h

int add(int a, int b);
Salin selepas log masuk

go telah mendayakan cgo secara lalai, jadi bina sahaja:

go build -o main.out .
Salin selepas log masuk

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!

sumber:stackoverflow.com
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!