我也试了zmq官网给出的例子,想直接编译也出现相同的问题(提示没有找到这个zmq.h文件。)
现在zmq的文章好像不多,安装的更没多少,希望会zmq的哥们能解答下我的问题,谢谢!
我也遇到这个问题,是你没把库路径引入进去。我用VS2010
解决方案:右键单击【属性】-【配置属性】-【VC++目录】-【包含目录】。把你的zeromq源码中zmq.h所在录井引入进去。就OK了
D:\ZMQ\zeromq-3.2.3\include(其中包含必要的zmq.h)
我的问题是这样:
1. zmq安装在c:\Program Files\ZeroMQ 3.2.3\
2. Visual Studio 2010配置如下:
1)Project > Property > C/C++ > General > Additional Include Dictionaries
添加:C:\Program Files\ZeroMQ 3.2.3\include
2)Project > Property > Linker > General > Additional Library Dictionaries
添加:C:\Program Files\ZeroMQ 3.2.3\lib
3)2)Project > Property > Linker > Input > Additional Dependencies
添加:c:\Program Files\ZeroMQ 3.2.3\lib\libzmq-v100-mt-gd-3_2_3.lib
但是在编译如下代码时,总是提示:
Error 1 error C2653: 'zmq' : is not a class or namespace name
不知道是什么原因,还请看到的大侠赐教!
代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
//
// Hello World server in C++
// Binds REP socket to tcp://*:5555
// Expects "Hello" from client, replies with "World"
//
#include <zmq.h>
#include <string>
#include <iostream>
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;
}
|
3.0以后 zmq.hpp 已经分拆到另外项目(zmq c++绑定)
到这里:
https://github.com/zeromq/cppzmq
下载 zmq.hpp 然后引用就行了 3)2)Project > Property > Linker > Input > Additional Dependencies
添加:c:\Program Files\ZeroMQ 3.2.3\lib\libzmq-v100-mt-3_2_3.lib
好像这样改一下就好了。