go 使用cgo调用C库
在windows上使用cgo需要gcc或g++的编译器,需要安装MinGW来实现编译cgo的程序。
go只支持64位,所以需要下载64为的MinGW,下载好mingw-w64-install后,双击启动安装,安装选项的架构一定要选择64位,缺省是32位的。
安装好了以后将 xxx/x86_64-.1.0-posix-seh-rt_v6-rev0/mingw64/bin添加到系统path中,至此gcc,g++编译环境就装好了。
在需要调用c库的go文件中添加如下内容:
/*
#include "mycipher.h"
#cgo windows CFLAGS: -I./include
#cgo windows LDFLAGS: -L. mycipher.dll
*/
import "C"
附件的压缩包里内容如下:
Include目录,这是我们的加解密库需要的头文件
在go程序的这一行
#cgo windows CFLAGS: -I./include
指定访问include文件夹的路径
libcrypto-1_1-x64.dll 加解密库需要的openssl基础库
mycipher.dll 加解密动态库
mycipher.h 加解密库调用的头文件,里面有库里调用的方法以及方法需要的参数
以上文件放到你的go工程目录下即可。