在 Visual Studio '13 项目中设置 ZeroMQ

Setting up ZeroMQ in a Visual Studio '13 Project

我正在尝试让 ZeroMQ 与我的 C++ 项目一起工作。我想做 ZeroMQ Hello World 教程,如下所示:

//  Hello World server
#include <zmq.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <assert.h>

int main (void)
{
    //  Socket to talk to clients
    void *context = zmq_ctx_new ();
    void *responder = zmq_socket (context, ZMQ_REP);
    int rc = zmq_bind (responder, "tcp://*:5555");
    assert (rc == 0);

    while (1) {
        char buffer [10];
        zmq_recv (responder, buffer, 10, 0);
        printf ("Received Hello\n");
        sleep (1);          //  Do some 'work'
        zmq_send (responder, "World", 5, 0);
    }
    return 0;
}

然而,每当我尝试编译和运行它时,Visual Studio 说它找不到 zmq.h 或我正在使用的任何 ZeroMQ 方法。我已经从 http://zeromq.org/distro:microsoft-windows 安装了 ZeroMQ,我还需要做什么才能让它工作?

你应该先 download and install 0MQ。 然后您将能够配置您的项目属性以指向正确的包含和库路径。

包括headers:


  • 右键单击项目 -> 属性 -> C/C++ -> 常规
  • 编辑'Additional Include Directories'
  • 添加C:\程序Files\ZeroMQ4.0.4\include
  • 右击'Header Files' -> 添加 -> 现有项 -> C:\Program Files\ZeroMQ 4.0.4\include\zmq.h

添加库目录:


  • 右键单击项目 -> 属性 -> 链接器 -> 常规
  • 编辑'Additional Library Directories'
  • 添加C:\Program Files\ZeroMQ 4.0.4\lib\

链接到正确的库:


  • 右键单击项目 -> 属性 -> 常规
  • 检查"Platform Toolset",注意版本号(例如:v120
  • 配置属性 -> 链接器 -> 输入
  • 编辑'Additional Dependencies'
  • 添加适当的工具集库(例如:libzmq-v120-mt-gd-4_0_4.lib)“-gd-”是调试版本

确保您的应用是 64 位的


  • 构建 -> 配置管理器
  • 活动解决方案平台 -> 新建...
  • Selectx64
  • 从 Win32 复制设置
  • 右键单击项目 -> 属性 -> 链接器 -> 所有选项
  • 编辑 "Output File" 设置为“.\x64\Debug\whatever.exe”

包含 pre-compiled dll 作为分发资源


  • 右键单击项目 -> 属性 -> 生成事件 -> Post-Build 事件
  • 编辑"Command Line"
  • 插入复制命令

例如:

copy /Y "C:\Program Files\ZeroMQ 4.0.4\bin\libzmq-v120-mt-gd-4_0_4.dll" "$(OutDir)"