1、gcc环境配置

Go 语言编译 DLL 文件,需要 gcc 的支持,Windows 环境下的 gcc 系统是 MinGW,官网下载地址是:
https://sourceforge.net/projects/mingw-w64/

2、编写 Go 语言程序:go2python.go

package main

import (
	"C"
	"time"
)

var c chan int

func decrement(n int) {
	for n > 0 {
		n -= 1
	}
}

//export count_time
func count_time() *C.char {
	start := time.Now()
	decrement(100000000)
	total_time := time.Since(start).String()
	return C.CString(total_time)
}

func main() {}

注意3点:

1、注释 //export PrintBye 和 //export Sum 在编译 DLL 的时候是必须的,说明了 DLL 需要输出的函数。注意注释和下面的函数名之间不能有空行。
2、函数 main 也是必不可少的,但是不知道是否能够用它来做 DLL 的初始化,这个以后再仔细研究。
3、go脚本文件名,不能命名为xxx_test.go。

3、编译生成 DLL 文件

MinGW 安装后有一个叫做 Run terminal 的快捷方式,运行后进入命令行方式,进入 exportgo.go 所在目录,运行如下命令:

go build -buildmode=c-shared -o go2python.dll go2python.go

编译生成 go2python.dll 和 go2python.h 两个文件。

4、python调用go

python通过调用步骤3中生成的go2python.dll,实现对go的调用

输出: