原来在centos7.5以下版本安装rabbitmq-c v0.9.0版本,都没有出现过'POPT_ARG_ARGV' 没找到的问题;今天在物理机Centos7.5 64位服务器中安装rabbitmq-c v0.9.0,出现了这个问题:
[ 87%] Built target amqp-get Scanning dependencies of target amqp-publish [ 88%] Building C object tools/CMakeFiles/amqp-publish.dir/publish.c.o /home/mpay/software/rabbitmq-c-master/tools/publish.c: 在函数‘main’中: /home/mpay/software/rabbitmq-c-master/tools/publish.c:87:23: 错误:‘POPT_ARG_ARGV’未声明(在此函数内第一次使用) {"header", 'H', POPT_ARG_ARGV, &headers, 0, ^ /home/mpay/software/rabbitmq-c-master/tools/publish.c:87:23: 附注:每个未声明的标识符在其出现的函数内只报告一次 gmake[2]: *** [tools/CMakeFiles/amqp-publish.dir/publish.c.o] 错误 1 gmake[1]: *** [tools/CMakeFiles/amqp-publish.dir/all] 错误 2 gmake: *** [all] 错误 2
CSDN上有篇博文,描述了这个问题的解决办法:https://blog.csdn.net/gao_yu_long/article/details/76018907;
但是是通过安装另外一个版本的才解决,并没有实际解决这个问题;
以下是我的解决办法:
1、首先怀疑是系统缺少POPT_ARG_ARGV函数导致的问题;百度POPT_ARG_ARGV函数属于哪个库,结果属于popt,直接通过yum -y install popt popt-devel;安装之后编译rabbitmq-c v0.9.0还是失败,一样的错误;
2、怀疑popt的动态库缺失导致的问题;果断到http://freshmeat.sourceforge.net/projects/popt下载popt源码,编译安装;再次编译rabbitmq-c v0.9.0,大功告成;