打印
[技术问答]

【转载】新塘N32926 rabbitmq-c编译

[复制链接]
626|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
LM莫|  楼主 | 2020-3-29 15:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1.问题概述

项目里需要使用N32926和服务器进行消息通讯,采用了rabbitmq进行通信。因此挑选了rabbitmq-c作为客户端。编译时碰到了许多问题在这里记录一下。


使用特权

评论回复
沙发
LM莫|  楼主 | 2020-3-29 15:13 | 只看该作者
2.openssl不兼容问题
rabbitmq-c官方宣称只需要0.9.8以上的openssl即可,但是直接使用原产自带的arm-linux-gcc-4.2包编译,编译失败。如果不编译带有openssl的版本,倒是可以成功的。想到很可能需要使用传输中的加密功能,因此想解决这个问题。
实际上openssl的0.9.8是一个大版本,从0.9.8a到0.9.8zh。因此猜测是较老的0.9.8版。因此从上面的连接下载该版本的源码进行编译后,获得了libcrypto.a,libcrypto.so,libcrypto.so.0.9.8,libssl.a,libssl.so,libssl.so.0.9.8等几个动态链接库文件以及include目录下的头文件,覆盖掉原编译器包自带的库文件。
编译源码时,编译参数也很令人头疼,网上找了半天,适合自己用的是这个参数(当然,生成的路径可以自己调整):
CC=arm-linux-gcc ./config no-asm shared --prefix=~/openssl --openssldir=~/openssl/ssl


使用特权

评论回复
板凳
LM莫|  楼主 | 2020-3-29 15:13 | 只看该作者
3.RabbitMQ编译的其他问题
接下来编译带有openssl的rabbitmq时,又出现了一个报错。提示是在
FIPS_mode_set()
函数内部的,设置了一个openssl的flag。查了半天fips是什么,捣鼓了半天也没弄好。最后通过代码查找功能发现,整个rabbitmq库只有这一个地方和fips扯上关系,而这个函数做的唯一一件事就是关掉了fips。所以我就干脆把这个函数内部的代码注释掉,问题解决,编译成功。


使用特权

评论回复
地板
734774645| | 2020-3-29 15:25 | 只看该作者
看来ARM9要崛起了。

使用特权

评论回复
5
磨砂| | 2020-4-6 15:50 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
6
晓伍| | 2020-4-6 15:50 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
7
八层楼| | 2020-4-6 15:50 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
8
观海| | 2020-4-6 15:50 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

61

主题

447

帖子

3

粉丝