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的调用
输出: