Мне нужно использовать ZeroMQ в приложении, построенном в Visual Studio 2008. Я сделал следующее:
-Загрузите ZeroMQ, чтобы получить следующую библиотеку: libzmq-v90-mt-4_0_4.lib.
-Клонировал репозиторий libzmq от Github.
-В свойствах проекта Visual Studio: добавлен каталог \ include библиотеки libzmq в C / C ++ -> Включить каталоги добавления, добавлен libzmq-v90-mt-4_0_4.lib в компоновщик-> Ввод-> Добавление Зависимости, добавили каталог библиотеки в компоновщик-> Общие-> Дополнительные каталоги библиотеки.
У меня есть оба файла: 'zmq.hpp' и 'zmq.h' в каталоге '\ include', я читал противоположные вещи, на которые я должен ссылаться. Я также читал о том, что ZMQ_STATIC нужно определить, но это не решило проблему компоновщика. Любой совет будет оценен!
#include <zmq.hpp>
#include <string>
#include <iostream>
#include "snoopygs.h"
#include <QtGui/QApplication>
int main(int argc, char *argv[])
{
// Prepare our context and socket
zmq::context_t context (1);
zmq::socket_t socket (context, ZMQ_REQ);
std::cout << "Connecting to hello world server…" << std::endl;
socket.connect ("tcp://localhost:5555");
// Do 10 requests, waiting each time for a response
for (int request_nbr = 0; request_nbr != 10; request_nbr++) {
zmq::message_t request (5);
memcpy (request.data (), "Hello", 5);
std::cout << "Sending Hello " << request_nbr << "…" << std::endl;
socket.send (request);
// Get the reply.
zmq::message_t reply;
socket.recv (&reply);
std::cout << "Received World " << request_nbr << std::endl;
}
QApplication a(argc, argv);
SnoopyGS w;
w.show();
return a.exec();
}
Это 2 примера ошибок компоновки:
ошибка LNK2019: неразрешенный внешний символ __imp__zmq_msg_init, на который ссылается функция "public: __thiscall zmq :: message_t :: message_t (void)" (?? 0message_t @ zmq @@ QAE @ XZ)
ошибка LNK2019: неразрешенный внешний символ __imp__zmq_errno, указанный в функции "public: __thiscall zmq :: error_t :: error_t (void)" (?? 0error_t @ zmq @@ QAE @ XZ)