package main
/*
#cgo CFLAGS: -I/user/local/include
#cgo LDFLAGS: -L/user/local/lib -l庫
//定義/調(diào)用頭文件
//定義C函數(shù)
int test_printf(char a)
{
printf("%c\r\n"m a);
return 0;
}
*/
import "C"
import "fmt"
func main() {
var c C.char = 'c'
retc := C.test_printf(c)
//這里ret 是C.int 格式,參考轉(zhuǎn)換圖則為go 對應(yīng)著 int32
retgo = int32(ret) //返回結(jié)果強化
fmt.Printf("%T", c)
}
總結(jié):
1拴念、import "C" 是啟用Cgo央串,以及cgo配置仗谆,頭文件,C函數(shù)
2扒吁、需要調(diào)用的C語言的內(nèi)容使用/**/注釋起來火鼻,放在import "C"之前
3、其中有兩個#cgo命令,分別是編譯和鏈接參數(shù)
- #cgo CFLAGS: -I/user/local/include //庫對應(yīng)頭文件所在的目錄加入頭文件檢索路徑
- #cgo LDFLAGS: -L/user/local/lib -l庫 //庫所在目錄加為鏈接庫檢索路徑