zoukankan      html  css  js  c++  java
  • WINDOWS 安装ZeroMQ

    zmq看起来很好用,但是安装起来不是一般麻烦。原来以为java绑定会提供jar包直接可使用,但是官网没有提供已经编译好的库文件和jar。多么的不方便啊!最终还是要自己动手编译!
    安装java版本的zmq,需要先安装libzmq,即核心库,然后是java绑定,即jzmq。

    安装libzmq

    libzmq是ZMQ的核心库,首先需要安装该库,然后才能使用ZMQ。
    一开始图方便,不想编译源码,比较麻烦不是?所以从http://zeromq.org/distro:microsoft-windows下载windows安装程序进行安装。但是发现还是需要编译安装jzmq,所以干脆已开始就编译安装libzmq。
    libzmq源码的git项目位于https://github.com/zeromq/libzmq,
    注意坑:从git上下载源码()后,使用vs2013编译时,弹出“无法找到sidium.h”。无法想象竟然会缺失文件!
    所以如果遇到上述问题,最好还是去http://www.zeromq.org/area:download, 下载稳定版本,目前发现V4.0.5是可编译的版本。
    开始编译之前,特别说明本次实践的测试环境:
    • 编译工具:vs 2013
    • 平台:windows 7 x64旗舰版
    开始安装:
    • 首先,运行vs2013,打开解决方案zeromq-4.0.5uildsmsvcmsvc.sln,系统提示转换方案,选择是即可。设置配置为release win32。
    • 执行“生成/生成解决方案”,没有意外的话构建会成功。
    • 生成的libzmq.lib位于zeromq-4.0.5uildsmsvcRelease,libzmq.dll则位于zeromq-4.0.5lib中,将libzmq.lib拷贝到zeromq-4.0.5lib目录,方便后面安装jzmq。

    安装jzmq

    jzmq是libzmq的java语言绑定。如果要在java程序中使用zmq,那么可以通过jzmq使用zmq的套接字。当然也可以使用jeromq,这是zmq的的java实现。
    安装jzmq比较麻烦,其中有大量的坑,一不小心就碰到大堆错误。
    接下来,开始编译安装jzmq。

    下载

    编译

    在windows上编译时,有几个大坑!也许在https://github.com/zeromq/jzmq/issues的问题列表里有其他人遇到的问题说明,但是一开始如果作者没有特别说明,谁会去仔细看?我们都会默认没有特别说明的软件是能正常工作的,正常思维都是如此吧?
    好,先打住抱怨,这没有任何用处!另外,毕竟我没有付任何费用,我不能像个怨妇一样抱怨!

    了解一些坑

    1)坑一:在github的jzmq项目主页上,找不到在windows上的构建说明,这应该是最大的坑吧。所以,你不清楚使用什么版本的visual studio。如果有人找到了,烦请相告。
    2)坑2:“预先生成事件”的命令行根本就是错的。
    在jzmq属性页/配置属性/生成事件/预先生成事件中,可以看到命令行:
     
    点击命令行,看到原来的命令是:
    说明:
    第一个红框内的命令是不能执行的,必须按这个格式修改下:copy ..config.hpp “......srcmainc++”;
    第二个javac命令也是错误的,红框内的ZFrame.java文件在编译的时候会找不到Utils.java文件。错误提示如下:
    注意上面红框内的错误提示,这说明ZFrame.java不能识别Utils这个类。但实际上,该类与ZFrame在同一个包内,且访问修饰符是public,所以按理说是可以访问的!之所以报不能访问的错误(即”找不到符号“),是因为Utils.java没有被编译,所以必须在ZFrame.java前加上Utils.java文件,如下:
    1. javac ......srcmainjavaorgzeromqMQ.java ......srcmainjavaorgzeromqMQException.java ......srcmainjavaorgzeromqMQForwarder.java ......srcmainjavaorgzeromqMQQueue.java ......srcmainjavaorgzeromqMQStreamer.java ......srcmainjavaorgzeromqEmbeddedLibraryTools.java ......srcmainjavaorgzeromqApp.java ......srcmainjavaorgzeromqContext.java ......srcmainjavaorgzeromqDispatcher.java ......srcmainjavaorgzeromqUtils.java ......srcmainjavaorgzeromqFrame.java ......srcmainjavaorgzeromqMsg.java
    经过上述处理后,命令行可以工作了。
     

    那么正式开工吧

    好了,既然已经知道有哪些地方需要注意并且如何修复后,我们开始工作。编译环境和libzmq一样,仍然是使用vs 2013。
    首先修改上面说的命令行不准确的这两个问题。
    第二,修改jzmq的VC++包含目录和库目录。
    其中,在“包含目录”中加入编译好的libzmq的include路径,并且修改java路径。在“库目录”中加入libzmq的lib路径,即上面的zeromq-4.0.5lib。如下:
     
    可以编译了,点击”生成/生成解决方案“,输出如下则意味着成功了。
     
    生成文件,包括jzmq.dll,jzmq.lib,zmq.jar,被放在项目的lib目录下。
     
    至此,花费数小时来解决问题,构建过程总算艰难完成。但是目前尚不清楚zmq.jar包是否能正常工作,有待测试,详细过程请点击这里
     
     
  • 相关阅读:
    简单批处理语法结构
    简单批处理常用命令
    简单批处理符号简介
    简单批处理内部命令
    jQuery操作DOM
    jQuery中的事件与动画
    jQuery选择器
    初始面向对象
    初识jQuery
    操作DOM
  • 原文地址:https://www.cnblogs.com/markleilei/p/4759479.html
Copyright © 2011-2022 走看看