使用eclipse开发代码,一段zeromq的代码。
#include <string.h> #include <stdio.h> #include <unistd.h> #include "zmq.h" int main(int argc, char const *argv[]) { void* context = zmq_ctx_new(); void* respond = zmq_socket(context, ZMQ_REP); zmq_bind(respond, "tcp://*:4040"); printf("Starting…\n"); for (;;) { zmq_msg_t request; zmq_msg_init(&request); zmq_msg_recv(&request, respond, 0); printf("Received: hello\n"); zmq_msg_close(&request); sleep(1); // sleep one second zmq_msg_t reply; zmq_msg_init_size(&reply, strlen("world")); memcpy(zmq_msg_data(&reply), "world", 5); zmq_msg_send(&reply, respond, 0); zmq_msg_close(&reply); } zmq_close(respond); zmq_ctx_destroy(context); return 0; }
- 报错 找不到zmq.h, 需要安装zeromq-devel ,然后在/usr/local/include中可以看到zmq.h文件了。
- 编译工程,报错 undefined reference to `zmq_ctx_new‘
- eclipse执行的是gcc -o "test" ./src/test.o 。没有引进zmq的path
- 添加path,工程上右键-Properties-c/c++ Build-Setting-Tool setting-gcc c linker-libraries,添加zmq。再重新编译没错误。