C++调用RabbitMQ之AMQPcpp库文件编译

操作流程:

1.安装OpenSSL(x64还是x32根据你需要编译的来)

2.下载安装CMAKE

3.从官网下载AMQPcpp源码

4.CMAKE把AMQPcpp源码转换为VS工程项目

5.编译AMQPcpp项目

一、安装OpenSSL(x64还是x32根据你需要编译的来)

openSSL下载链接:Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions(本次编译使用的版本是3.0.3)

二、下载安装CMAKE

CMAKE下载链接:Download | CMake(本次编译使用的版本是3.24.2)

下载好后直接安装,这里就不再赘述了(一直next的话除了安在C盘为其他问题也不大)。

三、从官网下载AMQPcpp源码

(写时指向GitHub地址为GitHub - akalend/amqpcpp: rabbitcpp is a C++ library for Message Queue Server RabbitMQ

将所有文件下载到D:\RabbitMQ\amqpcpp。

 在D:\RabbitMQ文件夹内新建一个build文件夹,如下图所示。

四、CMAKE把AMQPcpp源码转换为VS工程项目

如下图所示,先选好源码(蓝色框)和输出目录(红色框),再点击配置(黄色框)。

 在弹出框中选择好对应的VS版本和编译平台(以win32为例),然后点击Finish,等待输出configure done则表示配置完成。点击左下角的Generate按钮开始转换,输出Generate done表示转换完毕,若中间出现error,请仔细对照输出日志进行调整。

 

 完成转换后点击左下角的Open Project直接打开项目

 五、编译AMQPcpp项目

打开项目后右侧有7个项目,我们真正要只有amqpcpp一个项目,右键它进行属性配置。

将openssl库文件进行配置

修改链接器->输入中的项:

将原有的ssl.lib和crypto.lib改为 libcrypto32MDd.lib和libssl32MDd.lib

 

实际上就是将openssl库文件中的文件改名了,如图所示。

 右键amqpcpp项目选择“仅用于项目”->"仅重新生成amqpcpp(R)"

这时会发现出现错误“LINK : fatal error LNK1104: 无法打开文件“rabbitmq-c\librabbitmq\Debug\rabbitmq.4.lib”,这是因为我们还没有编译rabbitmq-c,在D:\RabbitMQ\build\rabbitmq-c中还有一个项目rabbitmq-c.sln,用vs打开后,直接点击生成->重新生成即可,然后关掉rabbitmq-c.sln项目。打开amqpcpp.sln项目重新生成amqpcpp项目(右键amqpcpp项目选择“仅用于项目”->"仅重新生成amqpcpp(R)")即可生成amqpcpp.dll。

若要生成lib文件,则需要右键amqpcpp项目->属性,将“常规”项中的“目标文件扩展名”和“配置类型”改为如下图所示,然后点击确认后右键amqpcpp项目选择“仅用于项目”->"仅生成amqpcpp(B)"即可同时获得lib文件。

 注意:使用的时候需要将D:\RabbitMQ\build\rabbitmq-c\librabbitmq\Debug中的rabbitmq.4.lib、rabbitmq.4.dll和D:\RabbitMQ\build\Debug中的amqpcpp.dll和amqpcpp.lib一起打包拷出,使用的时候都需要配置。

 为方便使用,如下链接中有我已经编译好的所有版本。

 「RabbitMQ环境打包」https://www.aliyundrive.com/s/n55pJbn27mK 提取码: 2qj1 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
c 调用 RabbitMQ 基于 HTTP 的过程如下: 1. 首先,c 客户端需要使用 HTTP 协议与 RabbitMQ 进行通信。c 客户端可以使用 HttpClient 或其他类似的来发送 HTTP 请求。 2. c 客户端需要构建一个合适的 HTTP 请求,以便与 RabbitMQ 进行交互。这通常需要指定请求的方法(例如 GET 或 POST)、请求的 URL(包括 RabbitMQ 的主机名和端口)以及其他必要的请求头和请求体参数。 3. c 客户端通过发送 HTTP 请求与 RabbitMQ 建立连接。这可以通过发送 HTTP POST 或 GET 请求到 RabbitMQ 的特定端点来完成。例如,c 客户端可以发送一个 HTTP POST 请求到 `http://rabbitmq-hostname:15672/api/exchanges/{virtual-host}/{exchange-name}/publish` 来发布消息到指定的交换机。 4. RabbitMQ 在接收到 c 客户端发送的请求后,会解析请求中的参数,并根据这些参数执行相应的操作。在这种情况下,RabbitMQ 会将消息发布到指定的交换机上。 5. 一旦消息发布成功,RabbitMQ 会返回一个 HTTP 响应给 c 客户端。这个响应中通常包含一些关于消息发布结果的信息,例如是否成功,消息的状态等。 6. c 客户端可以根据 RabbitMQ 返回的 HTTP 响应来进行后续处理。例如,如果消息发布成功,c 客户端可以继续执行其他操作;如果消息发布失败,c 客户端可以进行错误处理或重试。 总结起来,c 调用 RabbitMQ 基于 HTTP 的过程包括建立连接、发送 HTTP 请求并接收 RabbitMQ 的响应。这种方式可以实现 c 客户端与 RabbitMQ 的交互,并实现将消息发布到指定交换机的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值