librabbitmq.so.4: cannot open shared object file: No such file or directory

一、概述

1、问题描述:

命名已经安装了 rabbitmq-c,为什么编译amqp扩展时还会报这个错误。

原因是你虽然安装了新的扩展库,但是linux并没有识别到。

2、解决方案:

我这里,安装rabbitmq-c时,cmake操作时指定了安装位置,cmake -DCMAKE_INSTALL_PREFIX=/usr/local/rabbitmq-c ..,那我们就应该

cp /usr/local/rabbitmq-c/lib64/librabbitmq.so /usr/lib
cp /usr/local/rabbitmq-c/lib64/librabbitmq.so.4 /usr/lib
echo "include /usr/local/lib" >> /etc/ld.so.conf
ldconfig

这时我们重新编译安装amqp扩展,会发现不再报错,已经可以成功编译安装amqp扩展了。

 

二、额外备注
1、安装rabbitmq-c
cd /usr/local
git clone https://github.com/alanxz/rabbitmq-c.git
cd /usr/local/rabbitmq-c 
mkdir build && cd build \
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/rabbitmq-c .. 
cmake --build . --target install 
cd /usr/local/rabbitmq-c/lib64
cp /usr/local/rabbitmq-c/lib64/librabbitmq.so /usr/lib
cp /usr/local/rabbitmq-c/lib64/librabbitmq.so.4 /usr/lib
echo "include /usr/local/lib" >> /etc/ld.so.conf
ldconfig
2、安装amqp扩展
cd / 
wget http://pecl.php.net/get/amqp-1.10.2.tgz 
tar -zxf amqp-1.10.2.tgz 
cd amqp-1.10.2 
phpize 
./configure --with-php-config=/usr/local/php/bin/php-config --with-amqp --with-librabbitmq-dir=/usr/local/rabbitmq-c 
 make 
make install