如何將Go程序與C庫接口?我一直在瀏覽Go的源代碼,但我仍然沒有弄清楚。如果有人已經(jīng)這樣做了,請分享一下嗎?更新:感謝@fserb,我從Go來源發(fā)布了一些文檔:Cgo支持創(chuàng)建調(diào)用C代碼的Go包。用法:cgo [編譯器選項] file.go調(diào)用gcc編譯軟件包的C部分時,編譯器選項將通過未解釋的傳遞。輸入file.go是一個語法上有效的Go源文件,該文件導(dǎo)入偽包“ C”,然后引用諸如C.size_t之類的類型,諸如C.stdout之類的變量或諸如C.putchar之類的函數(shù)。如果在導(dǎo)入“ C”后立即添加注釋,則在編譯程序包的C部分時,該注釋將用作標頭。例如:// #include <stdio.h>
// #include <errno.h>
import "C"Cgo將輸入文件轉(zhuǎn)換為四個輸出文件:兩個Go源文件,一個用于6c(或8c或5c)的C文件和一個用于gcc的C文件。Make.pkg中的標準軟件包makefile規(guī)則可自動執(zhí)行使用cgo的過程。有關(guān)示例,請參見$ GOROOT / misc / cgo / stdio和$ GOROOT / misc / cgo / gmp。Cgo尚未與gccgo一起使用。
- 1 回答
- 0 關(guān)注
- 271 瀏覽
添加回答
舉報
0/150
提交
取消