ZMQ专题学习之二:编译libzmq及dll调用测试
ZeroMq是一个开源的消息队列网络框架,支持进程内和进程间的通信。
源码地址:https://github.com/zeromq/libzmq,下载最新版本即可(本人下的4.2.4版本的)。
操作如下的步骤,进行编译,获得dll文件:
第一步:解压压缩包;解压根目录文件夹名称,一定是libzmq,把版本号等去掉,即问价夹名称为libzmq(原因一句两句话说不清),这是最简单有效的办法,对初学者来说,避免很多麻烦。
第二步:打开工程文件;找到builds文件夹,打开后,看到下一级目录,由于本人采用vc2010作为开发的IDE环境,所以接着打开msvc这个目录,打开后找到vs2010这个目录,再打开文件夹,打开里面的.sln工程文件。
打开工程文件;见到下面的界面。(当然是用vc2010打开工程文件)
第三步:编译dll文件,根据自己的需要进行编译,由于本人的机器是64位的环境,所以本人进行了x64位设置,所以编译出的dll文件适合64位运行。
设置好后,在资源管理器的子窗口中找到libzmq这个项目,点击右键,选择“重新生成”(“生成”也可以)。然后开始编译,直到你看到编译成功为止。(如果人品没问题的话,基本能够一次成功,呵呵)。
到此为止,就完成了dll文件的生成(64位的)。
下面就做一个简单的例子,测试一下是否好用,这里就简单的检测版本信息为例:
第一步:建立一个testLibzmqVersion工程文件,以控制台方式的程序建立就可以。
第二步:在建立好的工程文件夹中建立两个目录,include和lib两个文件夹。
然后分别把 zmq.h 和zmq_utils.h拷贝到includes文件夹,libzmq.lib和libzmq.dll拷贝到lib文件夹中。(具体从哪里考,这里就不啰嗦了,对于熟悉vs环境的人,一点就透)。
第三步:设置附加包含目录、附加链接库,调试过dll的人都懂的,不再赘述。
第四步:在建立的工程文件的cpp的文件中,添加如下代码;
#include "stdafx.h"
#include <iostream>
#include "../include/zmq.h"
int main()
{
int a, b, c, d;
zmq_version(&a, &b, &c);
std::cout << "zmq-version:" << a << "-" << b << "-" << c << std::endl;
getchar();
return 0;
}
注意 include的包含方法。
测试:
第五步:编译后,会生成对应版本的,比如是release版本还是debug版本,32位,还是64位版本的dll和lib库。(本文为64位)
运行结果如下:
例子源代码下载地址如下:https://download.youkuaiyun.com/download/jyl_sh/12402463