问题 如何在Mac OS X上安装ZeroMQ的C ++绑定?


g++ actualApp.cpp -lzmq 

我明白了

actualApp.cpp:6:19: error: zmq.hpp: No such file or directory
actualApp.cpp: In function ‘int main()’:
actualApp.cpp:13: error: ‘zmq’ has not been declared
actualApp.cpp:13: error: expected `;' before ‘context’
actualApp.cpp:14: error: ‘zmq’ has not been declared
actualApp.cpp:14: error: expected `;' before ‘socket’
actualApp.cpp:15: error: ‘socket’ was not declared in this scope
actualApp.cpp:18: error: ‘zmq’ has not been declared
actualApp.cpp:18: error: expected `;' before ‘request’
actualApp.cpp:21: error: ‘request’ was not declared in this scope
actualApp.cpp:28: error: ‘zmq’ has not been declared
actualApp.cpp:28: error: expected `;' before ‘reply’
actualApp.cpp:29: error: ‘reply’ was not declared in this scope
actualApp.cpp: At global scope:
actualApp.cpp:33: error: expected constructor, destructor, or type conversion at end of input

对于

//
//  Hello World server in C++
//  Binds REP socket to tcp://*:5555
//  Expects "Hello" from client, replies with "World"
//
#include <zmq.hpp>
#include <string>
#include <iostream>
#include <unistd.h>

int main () {
    //  Prepare our context and socket
    zmq::context_t context (1);
    zmq::socket_t socket (context, ZMQ_REP);
    socket.bind ("tcp://*:5555");

    while (true) {
        zmq::message_t request;

        //  Wait for next request from client
        socket.recv (&request);
        std::cout << "Received Hello" << std::endl;

        //  Do some 'work'
        sleep (1);

        //  Send reply back to client
        zmq::message_t reply (5);
        memcpy ((void *) reply.data (), "World", 5);
        socket.send (reply);
    }
    return 0;
}

我在Mac OS X上安装了zeromq,就像这样 - ./configuremakemake install

我可以使用。编译C示例而不会出错 -lzmq 旗。

我应该如何使用这个C ++ .hpp 标头来自 https://github.com/zeromq/cppzmq


10137
2018-04-24 02:13


起源

你如何编译c ++代码? - Karthik T
我做了这样的C - gcc actualApp.c -lzmq
我正在尝试使用c ++ - g ++ actualApp.cpp -lzmq


答案:


我将文件zmq.hpp移动到/ usr / local / include,其中zmq.h也在那里


6
2018-04-24 03:05





我该怎么用.hpp https://github.com/zeromq/cppzmq 文件?

  1. 从上面的链接下载CPP绑定(只是zmq.hpp头文件)。
  2. 确保在编译时包含此头文件。例如:g ++ yourfile.cpp -I(zmq.hpp的路径)-lzmq

3
2018-01-27 18:27



为什么.hpp标头不包含在tarball中? - garyp


如果libzmq.so位于另一个文件夹中,则尚未提供包含文件和lib文件夹的路径。你需要使用

g++ actualApp.cpp -I$(Path to ZMQ include files) -L$(Path to ZMQ library files) -lzmq

你可能也想给 -o outFileName 除非您希望命名您的可执行文件 a.out


2
2018-04-24 18:11



我将头文件和源文件都移动到/ usr / local / include,它仍然显示'致命错误:没有这样的文件或目录': g++ asyncserver.cpp -std=c++11 -I/usr/local/include -L/usr/local/include -lzmq -o asyncserver - anon58192932


将/ usr / local / include添加到您的搜索路径


1
2018-06-03 16:23