zMide for zeroMQ编译失败

Joh*_*lom 1 c++ zeromq

我正在尝试构建zguide c ++示例,但编译失败.这是错误输出:

asyncsrv.cpp: In member function ‘void client_task::start()’:
asyncsrv.cpp:37:70: error: cannot convert ‘zmq::socket_t’ to ‘void*’ in initialization zmq::pollitem_t items[] = {{client_socket_, 0, ZMQ_POLLIN, 0}};

asyncsrv.cpp: In member function ‘void server_task::run()’: asyncsrv.cpp:140:52: error: cannot convert ‘zmq::socket_t’ to ‘void*’ for argument ‘1’ to ‘void zmq::proxy(void*, void*, void*)’ zmq::proxy(frontend_, backend_, nullptr);
Run Code Online (Sandbox Code Playgroud)

小智 8

如果您使用的是C++ 11编译器,请查看您的zmq.hpp是最新的并替换该行

zmq::pollitem_t items[] = {{client_socket_, 0, ZMQ_POLLIN, 0}};
Run Code Online (Sandbox Code Playgroud)

通过

std::vector<zmq::pollitem_t> items = {{static_cast<void *>(client_socket_), 0, ZMQ_POLLIN, 0}};
Run Code Online (Sandbox Code Playgroud)

和线

zmq::proxy(frontend_, backend_, nullptr);
Run Code Online (Sandbox Code Playgroud)

通过

zmq::proxy(static_cast<void *>(frontend_), static_cast<void *>(backend_), nullptr);
Run Code Online (Sandbox Code Playgroud)