Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux MosQuito_pub:加载共享库时出错:libmosQuito.so.1:无法打开共享对象文件:没有这样的文件或目录_Linux_Mqtt_Mosquitto_Fedora 21 - Fatal编程技术网

Linux MosQuito_pub:加载共享库时出错:libmosQuito.so.1:无法打开共享对象文件:没有这样的文件或目录

Linux MosQuito_pub:加载共享库时出错:libmosQuito.so.1:无法打开共享对象文件:没有这样的文件或目录,linux,mqtt,mosquitto,fedora-21,Linux,Mqtt,Mosquitto,Fedora 21,当我从源代码处编译Fedora21盒上的mosquitto时,我遇到了这个问题 Mosquito_发布:加载共享库时出错: libmosquitto.so.1:无法打开共享对象文件:没有此类文件或 目录 即使重新安装,客户端(即mosquitto_pub和mosquitto_sub)也会不断抛出该错误。我用sysmlinks修复了这个问题 $vi /etc/ld.so.conf include ld.so.conf.d/*.conf include /usr/local/lib /usr/lib

当我从源代码处编译Fedora21盒上的mosquitto时,我遇到了这个问题

Mosquito_发布:加载共享库时出错: libmosquitto.so.1:无法打开共享对象文件:没有此类文件或 目录


即使重新安装,客户端(即mosquitto_pub和mosquitto_sub)也会不断抛出该错误。

我用sysmlinks修复了这个问题

$vi /etc/ld.so.conf
include ld.so.conf.d/*.conf
include /usr/local/lib
/usr/lib
/usr/local/lib
$/sbin/ldconfig
$ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1

假设您已将库安装到默认的
/usr/local/lib
,正确的答案是以root/sudo身份运行
/sbin/ldconfig

在某些系统上,您需要向ld缓存的路径添加
/usr/local/lib
,例如:

echo /usr/local/lib > /etc/ld.so.conf.d/local.conf

这表示链接器不知道在哪里可以找到库。只需运行
sudo/sbin/ldconfig
即可更新库的链接器缓存。这不是mosquitto独有的功能。

这个答案毫无意义,如果您的库位于/usr/local/mosquitto/lib中,那么您创建的符号链接将不会有任何区别。如果库位于/usr/local/lib中,则只需运行ldconfig即可更新链接器缓存,无需修改ld.so.conf。是的,关于/usr/local/mosquitto/lib,您是对的。我已将其更改为/usr/local/lib。关于只是运行“ldconfig”来更新链接器缓存,在使用这个有点“脏”的解决方案之前,我确实尝试过,但没有用。你说得对,我很惊讶/usr/local/lib不在Fedora的默认设置中。这个解决方案在amazon linux 2上安装Mosquetto时起到了作用。不确定为什么这不是公认的答案。看起来好多了,为我工作