ZeroMQ在windows下编译zeromq-4.0.5和jzmq-master(32位系统)

来源:互联网 发布:java判断上传文件类型 编辑:程序博客网 时间:2024/05/19 21:01

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.  “预先生成事件”的命令行竟然是错的抓狂抓狂抓狂

在jzmq属性页/配置属性/生成事件/预先生成事件中,可以看到命令行是这样的但是这个是不对的:



我上面标的这两处都会出问题要改,下面这个是改完之后的



第一就是给 ..\..\..\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文件能不能正常工作,休息下再继续

1 0
原创粉丝点击