eclipse下进行c开发,使用zeromq

使用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…
");
    for (;;) {
        zmq_msg_t request;
        zmq_msg_init(&request);
        zmq_msg_recv(&request, respond, 0);
        printf("Received: hello
");
        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;
}
  1. 报错 找不到zmq.h, 需要安装zeromq-devel ,然后在/usr/local/include中可以看到zmq.h文件了。
  2. 编译工程,报错 undefined reference to `zmq_ctx_new'
    1. eclipse执行的是gcc  -o "test"  ./src/test.o  。没有引进zmq的path
    2. 添加path,工程上右键-Properties-c/c++ Build-Setting-Tool setting-gcc c linker-libraries,添加zmq。再重新编译没错误。 
原文地址:https://www.cnblogs.com/fanweiwei/p/3524881.html