ZMQ 是一个高性能, 易使用, 易配置的 Socket 库, 在 linux 里面一句命令能够安装, 但是其 windows 版本安装非常的麻烦, 要手动编译.
准备软件:
由于现在是2019年, 所以我们这里版本都是以最新的 release 为准, 现在中文互联网能找到的大部分材料都是针对很多年前的软件, 即使是 github 上老外的相关资料也不是很丰富.VS 2019
Cmake (命令行熟悉的用户也可以用 VS 内置的)
Git
因为我对 C/C++ makefile 那一套着实不算熟悉, 我这里采用的工具都是越简单越好的.
安装 libzmq
首先在 github clone libzmq 代码, 这个是 ZMQ 的原始 C 语言实现, ZMQ 的高性能实现大半要归功于此.
打开git bash, clone 一下zeromq/libzmqgithub.com
打开 Cmake gui, 选择项目路径, 打开 CMakeLists.txt 所在的路径
configure, 选择 generator 为 vs 2019
其他选项默认即可.
点击 generate.
点击 open project 即可在 VS 2019 中打开.
选择 build 为 release x64, 生成CMake cached file, 在 install sln 执行解决方案.
成功后在 C:\Program Files 里面能找到 zeromq 文件夹, 里面有一个 include 文件夹和一个 lib 文件夹, 这两个路径在 JZMQ 的安装会用得到.
安装JZMQ ( ZMQ-JNI )
克隆代码zeromq/jzmqgithub.com
一开始, 我也使用上面的方案使用cmake-gui makefile, 在 cmake-gui 面板 lib 依赖路径添加上上面生成的 lib 路径, include 路径同理. 然并卵. 提示找不到 .class 文件
D:\temp\JZMQ\jzmq\jzmq-jni\build64>cmake .. -G "NMake Makefiles" -DZMQ_C_INCLUDE_PATH= -DZMQ_C_LIB_PATH=
然后, 尝试了一下使用 Cmake + nmake, 也是 repository 开发者建议的 windows x64 的makefile 方案
也不行, 提示的错误是 nmake 找不到文件.
然后就没了, build 不了了, 我给你推荐一个 pure Java 实现吧, 即插即用(误zeromq/jeromqgithub.com
说回来, 尝试了几个 makefile 方案后, 我就看了一下, 当前版本的 VS 默认 build 方案是 ninja, 妈耶听都没听过 , . 在 issue 搜一下也没有搜到(反而是 libzmq 的一个 fix 提供了 ninja 的支持.
死马当作活马医, 用 VS 打开 CMakeLists.txt , 配置好 lib, include 依赖路径, 点击 install, 神奇的事情发生了, 居然 build 出来了, 虽然还是有报错, 但是 jar 包和 dll 文件都 build 出来了, 错误也很容易解决.
这就是这次 Make files 的经验.
本人用 C++ 除了高中时搞 OI 时搞过一点, 搞 Opengl 玩过一丢丢, 水平实属丢人, 工程化能力基本为零. 所以这一次 make file 成功自己都觉得不可思议. 撰文庆贺之.
然后, 最后安利一下 JeroMQ, 真的很爽啊, maven 导入一下 OK 了, 比 C/C++ 类人性化无数倍. 性能根据开发者称Performance that's not too bad, compared to native libzmq.
不挺好的嘛