网上有很多使用cgo的教程了,在这里分享一种非常简单的windows环境下完成cgo编译的方法。

首先,下载win环境下gcc下载:TDM gcc,安装后会自动加入到PATH下,cmd里就能使用gcc命令。我的电脑上cgywin在使用gcc总是会出问题,如果cgywin的gcc可以正常编译,就无须再另外下载gcc了。

编写含C语言的go文件:

package cgotest
                                                                  
/*
#include <stdio.h>
*/
import "C"
                                                                  
func PrintHello() {
    C.puts(C.CString("Hello,world\n"))
}

在此目录下创建批处理文件cgo.bat:

C:\Go\pkg\tool\windows_386\cgo cgotest.go
go install


双击运行cgo.bat就会在该目录下生成 _obj 文件夹:

wKioL1LtJ3TywfzXAAEL81Q4kH4320.jpg

且会在GOPATH下的pkg生成我们要调用的 cgotest.a 静态链接库

再需要的源码中的import加入"cgotest"即可。