【发布时间】:2015-06-05 00:11:58
【问题描述】:
我正在学习 zeromq 并且有以下测试代码:
void *context = (void *)zmq_ctx_new();
if (context == NULL) {
printf("context is null\n");
} else {
printf("context was created successfully\n");
}
printf("connecting to the 0mq server\n");
void *responder = zmq_socket (context, ZMQ_REQ);
printf("got socket\n");
if (responder == NULL) {
printf("responder is null\n");
} else {
printf("responder was created successfully\n");
}
当我运行代码时,它会在调用 zmq_socket() 时崩溃。这是输出:
启动 0mq 服务器上下文已成功创建连接到 0mq 服务器分段错误(核心转储)
我不确定为什么 zmq_socket() 会失败。我试图在我的 Makefile 中链接系列的开头移动 zmq 库。它仍然失败。
任何帮助将不胜感激。
【问题讨论】:
-
我的第一句话:void context = (void)zmq_ctx_new();实际上, void context = (void)zmq_ctx_new();不知道为什么它没有带 * 那里。无论如何..只是想澄清一下
-
你的调试器说段错误发生在哪里?
-
为什么要在第一个语句中使用演员表?在 C 中不需要在此处强制转换。如果编译器在没有它的情况下抱怨,您可能找到了问题的原因。