首页 > 代码库 > Linux下build和使用rabbitmq-c

Linux下build和使用rabbitmq-c

1) 按照这里介绍的方法,先安装CMake
2) 在这里找到下载link,下载rabbitmq-c的包
3) 解压,进入解压后的目录

4) mkdir build && cd build # 这一步是在rabbitmq-c的根目录下创建一个build子目录
5) cmake .. # 这一步是让cmake根据../CMakeList.txt,即rabbitmq-c的根目录下的CMakeList.txt创建Makefile文件,Makefile文件会被创建到build目录中
6) cmake --build . # 这一步是真正的build rabbitmq-c库的,注意,不要漏掉结尾的点 ‘.‘

完成后,build目录下会出现librabbitmq、examples 和 tests 子目录。其中librabbitmq中包含生成的librabbitmq.so等文件;examples中包含amqp_bind、amqp_consumer、amqp_exchange_declare、amqp_listen、amqp_listenq、amqp_producer、amqp_rpc_sendstring_client、amqp_sendstring 和 amqp_unbind 可执行文件。

这里有rabbitmq-c的example使用说明,和使用librabbitmq的简单说明。


关于amqp_open_socket Connection refused的错误提示


原因在于,使用说明中提到这样一句:

Arrange for a RabbitMQ or other AMQP server to be running on localhost at TCP port number 5672.

即,在运行example之前,要起Rabbitmq服务,监听在 localhost的5672端口,然后下面的操作才能正常工作。否则,会遇到错误提示 “Opening socket: Connection refused

In one terminal, run

./examples/amqp_listen localhost 5672 amq.direct test

In another terminal,

./examples/amqp_sendstring localhost 5672 amq.direct test "hello world"

You should see output similar to the following in the listener‘s terminal window:

Result 1
Frame type 1, channel 1
Method AMQP_BASIC_DELIVER_METHOD
Delivery 1, exchange amq.direct routingkey test
Content-type: text/plain
----
00000000: 68 65 6C 6C 6F 20 77 6F : 72 6C 64                 hello world
0000000B:

事实上,./examples/amqp_listen localhost 5672 amq.direct test 并不是真正起一个rabbitmq的服务,并监听在localhost:5672,而是模拟真正的rabbitmq server:如果在5672端口收到正确的数据,则打印相应的信息。其实这个模拟的server可以不用起,./examples/amqp_sendstring localhost 5672 amq.direct test "hello world" 也可以成功往 localhost:5672 发数据。

Linux下build和使用rabbitmq-c