windows平台上编译生成libzmq

最近需要做一个密集计算型的项目,采用的是分布式计算架构,各子系统间通信用到了ZeroMQ(http://zeromq.org/)。ZeroMQ是一个高性能消息队列库,可作为一个动态库链接的应用程序中,而且性能非常强悍(参考http://www.cnblogs.com/rainbowzc/p/3357594.html)。

使用的是官方提供的libzmq,使用前需要自己编译,下面介绍一下编译的步骤,同时记录类编译过程中遇到了两个问题及解决方法。

步骤一:下载libzmq。我下载的版本是4.1.4。下载地址是https://github.com/zeromq/libzmq,下载到本地后目录结构如下:


其中builds->msvc目录如下:


可以根据自己的实际情况选择不同的VS版本进行编译。我用的是VS2010.

打开之后工程目录如下:


编译libzmq工程即可。但是编译过程中出现了两个错误。

错误一:提示“error C1083: 无法打开包括文件:“sodium/core.h”: No such file or directory”

错误二:提示“error C3861: “if_nametoindex”: 找不到标识符”

错误一的解决方法:原因是缺少libsodium库,因此从https://download.libsodium.org/libsodium/releases/下载针对VS的最新版(libsodium-1.0.8-msvc.zip)。

并将的libsodium-1.0.8-msvc.zip解压到zeromq4.1.4所在文件夹下,并将解压后的文件夹重命名为libsodium,然后使用VS2010编译libsodium,编译完成后再次编译libzmq,这个错误不再出现。

错误二的解决方法:在libzmq工程上右键-属性,弹出的属性页中,在配置属性-连接器-输入中的“附加依赖项”中增加Iphlpapi.lib,如下图所示:


然后在出错的“tcp_address.cpp”文件上方增加“#include <netioapi.h>”,如下图所示:


然后再次编译生成libzmq即可。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值