windows下CGO编译

前言

  笔者最近在windows上编译go,其中模块github.com/pebbe/zmq4依赖于libzmq的动态库,整个编译过程不顺利,在此记录一下。

过程

  1. 对于模块需要依赖闭源系统(如windows就是闭源非开源系统)上的动态库,一般需要开启CGO,需要设置CGO_ENABLED。对于CGO及CGO_ENABLED确切的含义请百度。
  2. set CGO_ENABLED=1
  3. 下载需要的动态库到本地的一个目录,笔者的动态库目录为D:\code\golang_project\go_project\lib
  4. 设置CGO_CFLAGS/CGO_LDFLAGS分别指定库头文件和动态库路径,笔者把头文件和动态库放一起了。
  5. set CGOCFLAGS=-I<directory of include files>
  6. set CGOLDFLAGS=-L<directory of libraries> -l:<name of library>
  7. 执行编译,编译完成后,如需运行生成的可执行文件,需要确保动态库与可执行文件在同一目录。一般是将动态库*.dll拷贝到可执行文件所在的目录。或将动态库放在系统默认库目录(后补充)。

截图如下

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
具体命令如下:

set CGO_ENABLED=1
set CGO_CFLAGS=-Id:\code\golang_project\go_project\lib
set CGO_LDFLAGS=-Ld:\code\golang_project\go_project\lib -l:libzmq-v140-mt-4_3_4.lib
go build -o main.exe main.go

结尾

  • 关于CGO编译的分享到此就结束了。
  • 如果觉得还不错,你的点赞关注加收藏便是笔者继续更新的最大动力哦^_^
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值