本文主要是介绍Winddow系统下关于Golang使用Cgo的配置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.配置CGO_ENABLED为1
go env -w CGO_ENABLED=1
2.安装gcc环境,否则出现cgo: C compiler "gcc" not found: exec: "gcc": executable file not found in %PATH%错误
安装包:链接:https://pan.baidu.com/s/1sgF9lijqGePnFLiiixt4Zg?pwd=am7z
提取码:am7z。也可以官网下载自己想要版本。
3.配置环境变量,将gcc的路径添加添加到path,步骤如下。
添加路径到path。
4. 若出现一下错误
# runtime/cgo
gcc_linux_amd64.c: In function '_cgo_sys_thread_start':
gcc_linux_amd64.c:57:2: error: unknown type name 'sigset_t'; did you mean '_sigset_t'?
sigset_t ign, oset;
......
可以设置GOOS=windows
go env -w GOOS=windows
5.简单例子
- 文件目录
- 文件内容
// main.go package main/* #cgo CFLAGS: -I${SRCDIR} #cgo LDFLAGS: -L${SRCDIR} -lhello #include "hello.h" int Add(int a, int b) {return a + b; } */ import "C" // 注意C代码和 import "C" 之间不可存在空行import "fmt"func main() {a := C.int(10)b := C.int(20)c := C.Add(a, b)fmt.Println(c) // 30C.SayHello() }
// hello.c#include <stdio.h> #include "hello.h"void SayHello() {printf("Hello, cgo!\n"); }
// hello.hvoid SayHello();
- 编译成库
gcc -c hello.c ar -crv libhello.a hello.o
- 运行
这篇关于Winddow系统下关于Golang使用Cgo的配置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!