ls libc.so.6 version `GLIBC_2.28' not found (required by ls)--linux系统下文件夹中有libc.so.6文件
ls: libc.so.6: version `GLIBC_2.28’ not found (required by ls)–linux系统下文件夹中有libc.so.6文件
ls出现报错
因为当前文件夹下面存在libc.so.6文件,并且版本低于当前系统libc的版本,因为LD_LIBRARY_PATH
设置有问题。
libc调用顺序
- 缓存搜索:系统首先会查找之前运行过的程序的缓存,如果之前已经加载了libc库,那么会直接使用缓存中的libc库。
- 程序指定的动态链接库搜索路径:程序可以通过调用ldconfig或者设置LD_LIBRARY_PATH环境变量来指定动态链接库搜索路径,这些路径会被系统搜索。
- 系统默认搜索路径:如果以上步骤都没有找到libc库,那么系统会按照默认的搜索路径进行搜索,这些路径通常包括/lib、/usr/lib、/usr/local/lib等目录。
- 内建的默认搜索路径:如果系统仍然没有找到libc库,那么系统会搜索内建的默认搜索路径,这些路径通常包括/usr/lib64和/lib64等目录。
报错原因及解决办法
因为我的环境中设置了arm环境的libc,然后添加的时候设置错误,多添加了一个冒号,于是就会出现这种问题,删掉那个多余的冒号即可。或者重新指定一下连接库
临时指定
1
export LD_LIBRARY_PATH=/usr/lib
永久更改
1
2
3
4
5sed -i export 'LD_LIBRARY_PATH=/usr/lib:$LD_LIBRARY_PATH' ~/.bashrc
//如果是zsh就是
sed -i export 'LD_LIBRARY_PATH=/usr/lib:$LD_LIBRARY_PATH' ~/.zshrc
//最后source更新一下
source ~/.zshrc
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Daily Study!