error while loading shared libraries: libwebsockets.so.17: cannot open shared object file

libwebsockets示例提供了如下编译方法

cmake . && make

自己写的代码编译方法如下

gcc -o server main.c -lwebsockets

结果报错:

./server : error while loading shared libraries: libwebsockets.so.17: cannot open shared object file: No such file or directory

解决办法:

If you've installed libwebsockets with make install then you probably just need to run sudo ldconfig to update the linker cache.

执行如下命令

sudo ldconfig
error: conversion to ‘long int’ from ‘long unsigned int’ may change the sign of the result

注释掉 CMakeLists.txt 736 行下面内容即可

#	if ("${DISABLE_WERROR}" STREQUAL "OFF")
#		set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror")
#	endif()

cmake指定安装路径

cmake .. -DCMAKE_INSTALL_PREFIX="/home/ubuntu/libweb"

当您遇到 `driftnet: error while loading shared libraries: libwebsockets.so.18: cannot open shared object file: Error 40` 错误时,这通常意味着您尝试运行的 `driftnet` 工具找不到名为 `libwebsockets.so.18` 的共享库文件。原因可能是以下几个: 1. **缺失库文件**:`libwebsockets.so.18` 可能不是您的系统默认安装的一部分,或者已经被删除或移动。检查系统是否有这个版本的库,如果没有,可能需要通过包管理器手动安装。 2. **库文件路径未设置**:动态链接库(如 `.so` 文件)需要在系统搜索路径(`LD_LIBRARY_PATH`)中找到。如果库不在标准位置,确保设置了正确的路径。 3. **安装错误**:如果之前尝试过安装 `libwebsockets`,但安装过程出现问题,可能需要重新安装或清除旧的安装残留。 4. **版本兼容性**:有时两个不同的软件包可能会有相同的库名,但版本冲突可能导致加载失败。确认一下是否有其他软件包正在使用这个库,且版本是否兼容。 解决方法通常是: 1. **查找并安装库**:对于 Arch Linux 用户,可以用 `pacman -S libwebsockets` 来安装缺失的库。 2. **更新环境变量**:在终端里添加 `export LD_LIBRARY_PATH=path/to/libwebsockets:$LD_LIBRARY_PATH`,然后运行 `driftnet`,确保`path/to/libwebsockets`指向正确的库目录。 3. **修复或重新安装应用**:如果上述方法无效,尝试完全卸载再重新安装 `driftnet`。 如果问题依然存在,建议查阅具体的文档或寻求开发者社区的帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DeRoy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值