如何更新程序路径中的.so 链接?

如何更新程序路径中的.so 链接?

简单介绍一下背景,我正在尝试让 mosquitto 同时支持 websocket 支持和 mysql back auth-plugin。我使用的是 mosquitto 代理的 1.5.5 版本,因为它可以与 auth-plugin 配合使用并支持 websockets。

我首先使用旧版本的 libwebsocket 构建程序,然后才意识到我需要使用 2.4.2 版本。

我正在运行 Ubuntu 18.04 LTS

ldd /usr/local/sbin/mosquitto

linux-vdso.so.1 (0x00007ffcf7ff9000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f3f2eb9a000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f3f2e7fc000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f3f2e5f4000)
libssl.so.1.1 => /usr/local/lib/libssl.so.1.1 (0x00007f3f2e361000)
libcrypto.so.1.1 => /usr/local/lib/libcrypto.so.1.1 (0x00007f3f2de74000)
libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007f3f2dc6d000)
**libwebsockets.so.9 => /usr/lib/libwebsockets.so.9 (0x00007f3f2da47000)**
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f3f2d656000)
/lib64/ld-linux-x86-64.so.2 (0x00007f3f2efcd000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f3f2d437000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f3f2d21a000)

我如何更新此行libwebsockets.so.9 => /usr/lib/libwebsockets.so.9 (0x00007f3f2da47000)

我已经使用 2.4.2 重建了 lws,它提供了 libwebsockets.so.12 目标文件,但我不知道将其链接到 mosquitto?

用于重建 lws-2.4.2 的命令

cd /home/ubuntu/mqtt/websockets/
sudo cp /home/ubuntu/mosquitto_installer/install/libwebsockets-2.4.2.tar.gz .
sudo tar zxvf libwebsockets-2.4.2.tar.gz
sudo chmod 777 libwebsockets-2.4.2
cd libwebsockets-2.4.2/
mkdir build
cd build
sudo cmake ..
sudo make
sudo make install
sudo ldconfig

如果这与主题无关,请告诉我,我会在其他地方发布。

答案1

我必须从 /usr/local/lib 中删除旧的 .so 文件并重新运行我的脚本,现在它正在运行。

相关内容