git clone https://github.com/CopernicaMarketingSoftware/AMQP-CPP.git
cd AMQP-CPP# Ubuntu/Debian
sudo apt-get update
sudo apt-get install libevent-dev
# CentOS/RHEL
sudo yum install libevent-devel
# 或者从源码编译安装
wget https://github.com/libevent/libevent/releases/download/release-2.1.12-stable/libevent-2.1.12-stable.tar.gz
tar -xzf libevent-2.1.12-stable.tar.gz
cd libevent-2.1.12-stable
./configure
make
sudo make install# 创建构建目录
mkdir build
cd build
# 配置编译选项
cmake .. -DAMQP-CPP_LINUX_TCP=ON
# 编译
make
# 安装
sudo make install
# 设置库路径(如果需要)
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH# 检查头文件
ls /usr/local/include/amqpcpp/
# 检查库文件
ls /usr/local/lib/libamqpcpp*本目录包含两个示例程序:
- 连接到 RabbitMQ 服务器
- 声明 "test-exchange" 交换器
- 发布消息到交换器
- 支持消息确认机制
- 连接到 RabbitMQ 服务器
- 声明 "test-exchange" 交换器和 "test-queue" 队列
- 绑定队列到交换器
- 消费消息并处理不同场景:
- 处理成功:确认消息
- 处理失败:重新排队重试
- 严重错误:丢弃消息
g++ -std=c++11 -o producer producer.cc -lamqpcpp -leventg++ -std=c++11 -o consumer consumer.cc -lamqpcpp -levent- 首先启动 RabbitMQ 服务器
- 运行消费者程序:
./consumer - 运行生产者程序:
./producer
默认连接参数:
- 主机:localhost
- 端口:5672
- 用户名:guest
- 密码:guest
- 虚拟主机:/
可以通过修改代码中的连接字符串来更改这些参数。
-
连接失败
- 检查 RabbitMQ 服务是否运行:
sudo systemctl status rabbitmq-server - 确认防火墙设置
- 检查 RabbitMQ 服务是否运行:
-
库找不到错误
- 设置 LD_LIBRARY_PATH:
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH - 或者添加到 /etc/ld.so.conf.d/ 并运行
sudo ldconfig
- 设置 LD_LIBRARY_PATH:
-
编译错误
- 确认 libevent-dev 已安装
- 检查编译器版本支持 C++11
编译时添加调试信息:
g++ -std=c++11 -g -o producer producer.cc -lamqpcpp -levent