2013-04-24 18 views
11

NaJak zainstalować wiązanie C++ dla ZeroMQ na Mac OS X?

g++ actualApp.cpp -lzmq 

uzyskać

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 

dla

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

mam zainstalowanego zeromq na Mac OS X tak - ./configure, make, make install.

Mogę skompilować przykłady C bez błędów za pomocą flagi -lzmq.

Jak używać tego nagłówka C++ .hpp od https://github.com/zeromq/cppzmq?

+0

Jak skompilować kod C++? –

+0

Zrobiłem C w ten sposób - gcc actualApp.c -lzmq –

+0

Próbowałem dla C++ - g ++ actualApp.cpp -lzmq –

Odpowiedz

6

przeniosłem zmq.hpp pliku/usr/local/include gdzie zmq.h tam również

2

Nie podajemy ścieżkę do dołączania plików i folderu lib jeśli libzmq.so jest w innym teczka. Trzeba użyć

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

Prawdopodobnie też chcemy dać -o outFileName chyba że chcesz być plik wykonywalny o nazwie a.out

+0

Przeniosłem zarówno nagłówek, jak i plik źródłowy do/usr/local/include i nadal jest napisane "fatalny błąd" : brak takiego pliku lub katalogu ": g ++ asyncserver.cpp -std = C++ 11 -I/usr/local/include -L/usr/local/include -lzmq -o asyncserver' – anon58192932

3

How should I use this .hpp https://github.com/zeromq/cppzmq file?

  1. Pobierz wiążące CPP (który jest tylko zmq.hpp nagłówek plik) z powyższego linku.
  2. Należy uwzględnić ten plik nagłówkowy podczas kompilacji. ex: g ++ yourfile.cpp -I (ścieżka do zmq.hpp) -lzmq
+0

Dlaczego nagłówek .hpp nie jest zawarte w archiwum? – garyp

1

Dodaj/usr/local/include na swojej ścieżce wyszukiwania