我正在尝试设置库,简单的 C websocket 库。我按照 INSTALL 文件中的安装步骤进行操作,一切顺利。我能够编译示例中给出的测试程序。但是当我想运行我的可执行文件时,出现了一个大错误:
./echo: error while loading shared libraries: libwebsock.so.1: cannot open shared object file: No such file or directory
我检查了 /usr/local/lib 两次,发现 libwebsock.so.1 存在并且运行良好。我还尝试将 lib 复制到 echo 文件夹(因此它位于二进制文件旁边),仍然出现同样的错误。这对我来说很有趣:
shadowz@Ubu:~/WebSocket$ ls
echo echo.c echo.cpp libwebsock.so.1
shadowz@Ubu:~/WebSocket$ ./echo
./echo: error while loading shared libraries: libwebsock.so.1: cannot open shared object file: No such file or directory
有什么建议吗?我没什么主意了……
答案1
如果在安装库时未运行,请尝试手动运行ldconfig
(以 root 身份)。共享链接器使用缓存来查找共享库,并且ldconfig
需要对其进行更新。
答案2
我遇到了类似的问题,但对于不同的应用程序(Tecplot 2008),缺少 libXpm.so.4,尽管库似乎已安装。原来我使用的是 64 位操作系统,而应用程序正在寻找 32 位库。我使用的是 Manjaro(基于 Arch Linux),因此安装以下内容即可解决问题:
sudo pacman -S multilib-devel
sudo pacman -S lib32-libxpm