今天编译的时候,提示glibc未定义。
搜索一下,发现系统glibc的版本太旧,查看命令如下:
strings /lib/libc.so.6 |grep GLIBC_
发现我系统上的GLIBC版本太旧,遂打算更新glibc。
到http://ftp.gnu.org/gnu/libc/下载一个新的版本。
一时脑洞大开,找到libc.so.6,备份到另一个路径,然后直接就删掉了/usr/libc.so.6,杯具来了,不管敲cp、ls等命令,都提示fail。更2的是,我又把机器关机了。
后面再开机,机器就起不来,提示libc.so.6找不到。后面百度找到一些方法,大多是机器没有关机的那种,也有说做一个启动盘,再把libc.so.6拷进去。我用的就是后面这种方法。
解决方法:
1.下载U盘制作Ubuntu启动盘的工具(Universal_USB_Installer)(http://rj.baidu.com/soft/detail/26320.html)
2.用Universal_USB_Installer将一个ubuntu的镜像安装到U盘上
3.用U盘启动,启动后,会进入一个ubuntu的安装页面,千万不要点“安装”那个选项,选择“try”就行了,然后机器就会进入ubuntu系统页面,打开文件夹,你可以看到左边有一个Devices选项,Devices就会显示你原来的硬盘,东西都在里面。
4.创建libc.so.6软链接,
cd /media/XXXX/lib
sudo ln -s libc.so.6 libc-2.12.1.so
5.重启就可以了。
参考:误删 libc.so.6的解决方法
今天不小心把libc.so.6给删除了。
原系统是这样的: libc.so.6 -> lib-2.6.1.so
本想新建立一个软链接,指向 lib-2.8.so
没想到 ln 命令不能用了。 原来linux 很多shell命令都离不开 libc.so.6。 真惨了。 幸好没有关linux.
从网上一查, 找到解决方案:
进入 /lib (或 /lib64 视情况而定),
#LD_PRELOAD=/lib/libc-2.6.1.so ln -s /lib/libc-2.6.1.so libc.so.6
就可以了。