2

构建/编译时出现此错误:

C:\Ethe\main.cpp: In function 'int main()':
C:\Ethe\main.cpp:11:4: error: 'zmq' has not been declared
C:\Ethe\main.cpp:11:19: error: expected ';' before 'context'
C:\Ethe\main.cpp:12:4: error: 'zmq' has not been declared
C:\Ethe\main.cpp:12:18: error: expected ';' before 'socket'
C:\Ethe\main.cpp:14:4: error: 'zmq' has not been declared

主.cpp:

#include <zmq.h>
#include <iostream>
#include <string>

int main()
{
   std::string tip;
   std::cout << "Enter Target IP: ";
   std::cin >> tip;

   zmq::context_t context (1);
   zmq::socket_t socket (context, ZMQ_REQ);
   std::cout << "Connecting to " << tip << std::endl;
   zmq::socket.connect ("tcp://"+tip+":5555");

   return 0;
}

有人对我如何解决这个问题有任何想法吗?

4

2 回答 2

7

您需要添加#include <zmq.hpp>这将包括 libzmq 的 C++ api。但是,在 zmq 版本 2.x 版本中,它包含在安装中,现在在 zmq-3.xy 版本中,它不再随库一起提供,正如您从http://github.com/zeromq/中看到的那样zeromq3-x/原始/主/新闻

C++ api 被排除在核心库之外,因为 zeromq 的少即是多策略。它仍然可以从以下位置下载: https ://github.com/zeromq/cppzmq/blob/master/zmq.hpp

这个头文件是围绕所有 C 结构和 C API zeromq 函数编写的,因此整个 C++ API 是一个单独的头文件。可以从上面的链接下载。

于 2013-08-19T21:06:28.520 回答
0

如果你自己写的 zmq.h 应该是"zmq.h".

于 2013-08-19T20:54:44.877 回答