1. 程式人生 > 其它 >記錄一個解決GLIBC_2.18 not found的問題

記錄一個解決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 連結.