1、為何報錯?
因工作需要在linux環境下運行一些python代碼,用到了lightgbm庫,而因為CentOS6.5的glibc版本內置是比較低的,而python代碼編譯時用了較高的版本。
2、網上的解決方案
百度以后發現是比較常見的錯誤,網上給出的方式一般是分兩種
1、使用類似 libstdc++.so.6.0.26 的一個文件替換原有的 動態鏈接庫
本人嘗試該方法沒有成功,不過找到了對應文件(libstdc.so_.6.0.26),似乎多數地方都需要C幣,在此免費分享給大家。
具體使用方法推薦下述鏈接,希望使用該方法就可以解決問題。
博客鏈接:https://blog.csdn.net/u012811841/article/details/77854581/
文件鏈接:http://www.vuln.cn/wp-content/uploads/2019/08/libstdc.so_.6.0.26.zip
2、第二種是嘗試編譯整個庫,也沒有成功,而且比較費時間,對編譯了解的比較多的人可以嘗試一下,這里就不貼鏈接了。
3、第三種是修改依賴程度的,這個沒有做過嘗試。貼一下鏈接,可能會提供一些思路,但方法並未嘗試過。
博客鏈接:https://www.cnblogs.com/jhc888007/p/9400450.html
3、最終選用的方法(推薦)
下圖是系統glibc的版本,gcc的版本是4.8.2。
strings /lib64/libc.so.6 |grep GLIBC
紅框部分需要做如下操作就可以得到,也就解決了報錯。
直接使用 wget 命令下載 rpm文件並安裝,如果速度太慢可以直接下載再上傳。
wget http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo-el6/epel-6-x86_64/glibc-2.17-55.fc20/glibc-2.17-55.el6.x86_64.rpm wget http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo-el6/epel-6-x86_64/glibc-2.17-55.fc20/glibc-common-2.17-55.el6.x86_64.rpm wget http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo-el6/epel-6-x86_64/glibc-2.17-55.fc20/glibc-devel-2.17-55.el6.x86_64.rpm wget http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo-el6/epel-6-x86_64/glibc-2.17-55.fc20/glibc-headers-2.17-55.el6.x86_64.rpm sudo rpm -Uvh glibc-2.17-55.el6.x86_64.rpm glibc-common-2.17-55.el6.x86_64.rpm glibc-devel-2.17-55.el6.x86_64.rpm glibc-headers-2.17-55.el6.x86_64.rpm
strings /lib64/libc.so.6 |grep GLIBC
再次查看glibc,發現glibc 2.14 已經有了,並且最新的已經到了 2.17版本。
希望不要再被這種沒意思的問題所困擾。