cgo 使得在 Golang 中可以使用 C 代碼。
公司主營(yíng)業(yè)務(wù):做網(wǎng)站、成都網(wǎng)站制作、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。成都創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。成都創(chuàng)新互聯(lián)推出廣靈免費(fèi)做網(wǎng)站回饋大家。
為了有一個(gè)較為直觀的了解,我們來(lái)看一個(gè)簡(jiǎn)單的例子,創(chuàng)建文件 main.go:
package main /* #includevoid sayHi() { printf("Hi"); } */ import "C" func main() { C.sayHi() }
執(zhí)行程序:
go run main.go
程序執(zhí)行并輸出 hi(更多的范例可以見(jiàn) $GOROOT/misc/cgo)。
Windows 下的準(zhǔn)備工作
如果想要在 Windows 上使用 cgo,那么需要安裝 gcc 編譯器,這里我使用 mingw-w64。
設(shè)置編譯和鏈接標(biāo)志
我們使用 import “C” 導(dǎo)入的是一個(gè)偽包(pseudo-package),我們通過(guò)其來(lái)使用 C 代碼。在 import “C” 之前,緊跟著 import “C” 的注釋可以包括:
編譯器和鏈接器標(biāo)志 C 代碼
我們可以通過(guò) #cgo 指令來(lái)設(shè)置編譯器和鏈接器標(biāo)志,例如:
// #cgo CFLAGS: -DPNG_DEBUG=1 // #cgo amd64 386 CFLAGS: -DX86=1 // #cgo LDFLAGS: -lpng // #includeimport "C"
以上就是golang 怎么調(diào)用c代碼的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注創(chuàng)新互聯(lián)其它相關(guān)文章!