Install Zeromq on Windows
在 windows 上安装 zeromq
背景
$ go run src\app.go
# github.com/pebbe/zmq4
exec: "gcc": executable file not found in %PATH%
安装
安装 ZeroMQ, 大约 3.9 MB
打开
ZeroMQ-4.0.4-miru1.0-x64.exe
, 默认安装路径是C:\Program Files\ZeroMQ 4.0.4
注意安装的是 windows 7 以后的版本, 其他 windows 版本在 distro:microsoft-windows
安装
gcc
使用 MinGW-w64, 大约 44MB.
下载后解压
x86_64-7.1.0-release-win32-seh-rt_v5-rev0.7z
. 注意安装的是对应 x64 版本, 其他版本在 mingw-w64/files/将以下路径添加到系统环境变量 PATH
C:\Program Files\mingw-w64\x86_64-7.1.0-win32-seh-rt_v5-rev0\mingw64\bin
复制头文件
zmq.h
zmq_utils.h
从
C:\Program Files\ZeroMQ 4.0.4\include
到
C:\Program Files\mingw-w64\x86_64-7.1.0-win32-seh-rt_v5-rev0\mingw64\x86_64-w64-mingw32\include
复制 lib 文件
libzmq-v120-mt-gd-4_0_4.lib
从
C:\Program Files\ZeroMQ 4.0.4\lib
到
C:\Program Files\mingw-w64\x86_64-7.1.0-win32-seh-rt_v5-rev0\mingw64\x86_64-w64-mingw32\lib
改名为
zmq.lib
复制 dll 文件
libzmq-v120-mt-gd-4_0_4.dll
从
C:\Program Files\ZeroMQ 4.0.4\bin
到
C:\Program Files\mingw-w64\x86_64-7.1.0-win32-seh-rt_v5-rev0\mingw64\x86_64-w64-mingw32\bin
改名为
libzmq.dll
测试
go get github.com/pebbe/zmq4
,如果没报错就是成功了.
运行程序时, 出现以下症状时, 有可能需要把
libzmq-v120-mt-gd-4_0_4.dll
放到app.go
同级目录下面.症状: build正常, run异常退出
$ go build app.go $ $ go run app.go exit status 3221225781
FAQ
- 如果出现 msvcp120d.dll 未能找到的系统错误,尝试将上述所有拷贝的名为 libzmq-v120-mt-gd-4_0_4.xxx的 文件,改为拷贝 libzmq-v120-mt-4_0_4
- 如果遇到找不到头文件的问题,尝试将 zmq.h和 zmq_util.h复制到zmq4 的go包的根目录中
答疑
为什么选择
libzmq-v120-mt-gd-4_0_4.dll
这个文件?参考官网, 在 windows7 sp1 以后的系统, 对应的库是
libzmq-v120-mt-gd-4_0_4
Stable Release 4.0.4
- x64 build for Vista, 7, 8, Windows Server 2008 R2 and newer.
- x86 build for Windows XP SP3 and newer.
Binaries built with v90, v100, v110, v110_xp, and v120 toolkits.
Packages include release and debug dynamic libraries along with PDB files for the debug builds, static libraries are set to appear in the next stable revision.
The following libraries require Windows 7 SP1, Windows Server 2008R2 or later:
Compiler Toolkit Release Debug Visual Studio 2012 U4 v110 libzmq-v110-mt-4_0_4
libzmq-v110-mt-gd-4_0_4
Visual Studio 2013 v120 libzmq-v120-mt-4_0_4
libzmq-v120-mt-gd-4_0_4 为什么不自己编译?
懒