ZeroMQ在windows下编译zeromq-4.0.5和jzmq-master(32位系统)
我在网上查了好多资料,最后总结为 ZeroMQ在其官网上竟然没有编译好的jar,这个甚是让人头疼,还有就是在官网上也没有说zeromq-4.0.5和jzmq-master这个版本要用那个版本的Visual Studio ,所以我在这里绕了好多弯路,由于电脑上没有安装Visual Studio,所以现在安装,网上看了下vs的安装包很大2010版本的vs是2.8个G,而2013版本的vs确实5.8个G,所以想了想就下了个2010版的,结果编译zeromq-4.0.5提示转换,ok转换完成,编译也成功,但是编译jzmq-master的时候竟然转换不了,说vs版本太低,折腾了两天结果走进了死胡同里了,没办法就把2010的vs卸了,换2013 的vs,编译时也是提着小心脏的,不过还是功夫不负有心人,编译成功谢天谢地,好了废话不多说下面正式开始ZeroMQ在windows下编译zeromq-4.0.5和jzmq-master的编译之旅。·
首先生成libzmq.lib和libzmq.dll
一定要是这个版本的vs的,否则出错就不负责了
编译工具:vs2013
平台:windows 7 x32旗舰版
第一步:在官网上下载zeromq-4.0.5 (http://www.zeromq.org/area:download)
第二步:打开vs2013,打开解决方案 \zeromq-4.0.5\builds\msvc\msvc.sln ,系统会提示转换,点确定就行,配置原来是DeBug改为release 执行" 生成/生成解决方案" ok不出问题就是生成成功了
第三步:生成的libzmq.lib位于\zeromq-4.0.5\builds\msvc\Release,libzmq.dll则位于\zeromq-4.0.5\lib中,将libzmq.lib拷贝到\zeromq-4.0.5\lib目录
然后 生成jzmq
这个比较麻烦,因为生成jzmq是需要上边的编译的zeromq-4.0.5和生成的.dll和.lib,坑也比较多,需要改好多的东西
第一步:在官网上下载jzmq-master(https://github.com/zeromq/jzmq)
第二步:打开vs2013,打开解决方案 \jzmq-master\builds\msvc\msvc.sln ,系统会提示转换,点确定就行,配置原来是DeBug改为release 执行" 生成/生成解决方案" ok不出问题就是生成成功了
等等,让时间回退到执行" 生成/生成解决方案" 之前,我们有几个小问题需要注意下:
注意了这边有两点需要注意,
1. “预先生成事件”的命令行竟然是错的。
我上面标的这两处都会出问题要改,下面这个是改完之后的
第一就是给 ..\..\..\src\main\c++\加上双引号,第二就是在..\..\..\src\main\java\org\zeromq\ZFrame.java之前加上..\..\..\src\main\java\org\zeromq\Utils.java
总的呢最后改成下边这个就是了
copy ..\config.hpp "..\..\..\src\main\c++\"
javac ..\..\..\src\main\java\org\zeromq\ZMQ.java ..\..\..\src\main\java\org\zeromq\ZMQException.java ..\..\..\src\main\java\org\zeromq\ZMQForwarder.java ..\..\..\src\main\java\org\zeromq\ZMQQueue.java ..\..\..\src\main\java\org\zeromq\ZMQStreamer.java ..\..\..\src\main\java\org\zeromq\EmbeddedLibraryTools.java ..\..\..\src\main\java\org\zeromq\App.java ..\..\..\src\main\java\org\zeromq\ZContext.java ..\..\..\src\main\java\org\zeromq\ZDispatcher.java ..\..\..\src\main\java\org\zeromq\Utils.java ..\..\..\src\main\java\org\zeromq\ZFrame.java ..\..\..\src\main\java\org\zeromq\ZMsg.java
2.修改jzmq的VC++目录的包含目录和库目录
还是在jzmq的属性页中,我的zeromq-4.0.5是放在桌面的所以这么着写,看你的是放在那里的了
在“包含目录”中加入编译好的libzmq的include路径,并且修改java路径。
在“库目录”中加入libzmq的lib路径,即上面的\zeromq-4.0.5\lib
3.由于我的vs2013是刚装上的所以会报找不到文件 jni.h和jni_md.h (有的也可能不会出现这个问题)
在%JAVA_HOME%/include/下找到 jni.h,在%JAVA_HOME%/include/win32/下找到jni_md.h,复制到“Visual Studio目录/VC/include/”下,即可解决问题
ok,这些都改完了,我们就可以编译了,执行" 生成/生成解决方案" ok不出问题就是生成成功了
生成的文件,包括jzmq.dll,jzmq.lib,zmq.jar,都在项目的lib目录下。
当然我这里也有编译完成的,各位有需要的话可以到以下网址自行下载
http://download.csdn.net/detail/sinat_19351993/8658499
好了现在我们的旅程就先到这里,然后下面我们将验证我们自己编译生成的dll和jar文件能不能正常工作,休息下再继续