1、介绍
CGO是Go语言的一种特性,这种特性允许在Go代码中直接调用C代码,
要注意的是 CGO 可不是像 GCC 一样的东西
2、如何使用CGo
如果在Go代码中出现了import "C"语句则表示开启并使用了CGO特性,这样在进行go build命令时,就会在编译和连接阶段启动gcc编译器。
紧跟在这行语句前面的注释是一种特殊语法,里面包含的是正常的C语言代码。当确保CGO启用的情况下,还可以在当前目录中包含C/C++对应的源文件。
package main
/*
#include <stdio.h>
void printint(int v) {
printf("printint: %d\n", v);
}
*/
import "C"
func main() {
v := 42
C.printint(C.int(v))
}
3、Go build
在使用Go build的时候,通常会使用到 CGO_ENABLED / GOOS / GOARCH 这些构建选项。
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o ProjectName ../main.go
有些项目由于会使用到CGO特性,所以在构建的时候会要求必须开启CGO,如confluent-kafka-go

1、介绍
CGO是Go语言的一种特性,这种特性允许在Go代码中直接调用C代码,
2、如何使用CGo
如果在Go代码中出现了
import "C"语句则表示开启并使用了CGO特性,这样在进行go build命令时,就会在编译和连接阶段启动gcc编译器。紧跟在这行语句前面的注释是一种特殊语法,里面包含的是正常的C语言代码。当确保CGO启用的情况下,还可以在当前目录中包含C/C++对应的源文件。
3、Go build
在使用Go build的时候,通常会使用到
CGO_ENABLED/GOOS/GOARCH这些构建选项。有些项目由于会使用到CGO特性,所以在构建的时候会要求必须开启CGO,如confluent-kafka-go