记录一个解决GLIBC_2.18 not found的问题


测试机器, 昨天下午还可用, 晚上报错, 发现有些命令提示: 

[root@localhost ~]# ldd /home/work/kunlun/output/bin/xpu_smi
/home/work/kunlun/output/bin/xpu_smi: /lib64/libc.so.6: version `GLIBC_2.18' not found (required by /lib64/libstdc++.so.6)
linux-vdso.so.1 => (0x00007ffc0e528000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f04a4d8e000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f04a4b72000)
libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f04a478e000)
libm.so.6 => /lib64/libm.so.6 (0x00007f04a448c000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f04a4276000)
libc.so.6 => /lib64/libc.so.6 (0x00007f04a3ea8000)
/lib64/ld-linux-x86-64.so.2 (0x00007f04a4f92000)

因为三方团队人员都在用这个机器, 问谁都说没动环境, 自己找原因了. 

1、首先确定是环境问题.

2、查看系统是否有GLIBC_2.18 :

[root@localhost ~]# strings  /lib64/libstdc++.so.6| grep GLIBC_
GLIBC_2.2.5
GLIBC_2.3
GLIBC_2.14
GLIBC_2.6
GLIBC_2.4
GLIBC_2.18
GLIBC_2.16
GLIBC_2.3.4
GLIBC_2.17
GLIBC_2.3.2

发现有2.18.

根据报错信息提示有两个库可能有问题: 1、/lib64/libc.so.6  2、/lib64/libstdc++.so.6

分别比对正常机器和异常机器的这两个lib链接, 发现/lib64/libstdc++.so.6 链接到了libstdc++.so.6.0.28, 而正常的机器链接到了/lib64/libstdc++.so.6.0.19 . 

发现问题了, 就resolve it. 

 ln -sf /lib64/libstdc++.so.6.0.19  /lib64/libstdc++.so.6

再次执行***_smi, 成功显示显存信息. 

之后发现GLIBC not found问题, 可以直接看/lib64/libstdc++.so.6 链接. 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM