librdkafka 0.7 编译失败解决办法

在Linux上编译librdkafka 0.7时遇到编译失败的问题。通过去掉Makefile中的-Werror选项,将警告视为错误的设置移除,解决了编译警告导致的错误。此外,解决undefined reference to `__sync_sub_and_fetch_4'的问题,可以更新GCC或添加-march选项。若遇到sys/queue.h过旧导致的问题,升级系统或替换queue.h文件并修改包含路径。
摘要由CSDN通过智能技术生成
Kafka MQ是一个高吞吐量分布式消息系统,是由LinkedIn开源的消息中间件。原生的Kafka是由Java实现的,当需要应用到C/C++环境时,需要C/C++的接口。librdkafka是一个C语言的Kafka API,也是Kafka官网推荐使用的C语言API,作者是Magnus Edenhill。这里使用的版本是librdkafka 0.7。

昨天在Linux上编译librdkafka,发现编译失败。make all,出现如下提示:

cc -MD -MP -O2 -Wall -Werror -Wfloat-equal -Wpointer-arith -fPIC -I. -g -c rdkafka.c
cc1: warnings being treated as errors
rdkafka.c: In function 'rd_kafka_q_pop':
rdkafka.c:551: warning: implicit declaration of function 'TAILQ_FIRST'
rdkafka.c:551: warning: assignment makes pointer from integer without a cast
make: *** [rdkafka.o] Error 1

在网上搜了好久,都找不到解决办法。

今天,请教了一下同事,解决办法其实很简单,把gcc的选项 -Werror 去掉就可以了,在 Makefile 中直接修改。

man gcc,-Werror 的含义是 Make all warnings into errors,其实上面的 “warnings being treated as errors” 已经说得很明显,只是自己很少用 m

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值