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.hzmq_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_4Stable 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_4libzmq-v110-mt-gd-4_0_4Visual Studio 2013 v120 libzmq-v120-mt-4_0_4libzmq-v120-mt-gd-4_0_4 为什么不自己编译?
懒