Как установить привязку С++ для ZeroMQ в Mac OS X?

О

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;
}

Я установил zeromq на Mac OS X, как это, - ./configure, make, make install.

Я могу скомпилировать примеры C без ошибок, используя флаг -lzmq.

Как использовать этот заголовок С++ .hpp из https://github.com/zeromq/cppzmq?

Ответ 1

Я переместил файл zmq.hpp в /usr/local/include, где zmq.h также был там

Ответ 2

Как использовать этот файл .hpp https://github.com/zeromq/cppzmq?

  • Загрузите ссылку CPP (которая является только файлом заголовка zmq.hpp) из приведенной выше ссылки.
  • Обязательно включите этот файл заголовка во время компиляции. ex: g++ yourfile.cpp -I (путь к zmq.hpp) -lzmq

Ответ 3

Вы не указали путь к файлам include и папке lib, если libzmq.so находится в другой папке. Вы должны использовать

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

Вероятно, вы также хотите предоставить -o outFileName, если вы не хотите, чтобы ваш исполняемый файл был назван a.out

Ответ 4

Добавить/usr/local/включить в ваш путь поиска