今天把前段时间写的程序放在另一个版本的系统上运行,出现以下错误:
/lib/i686/cmov/libc.so.6: version `GLIBC_2.8' not found
查阅资料,原因是我的程序编译的glibc版本比当前系统版本高导致的。
参考链接:https://stackoverflow.com/questions/35133695/glibc-version-mismatch
有几种解决方案:
1)在新系统上重新编译程序
2)采用静态编译
3)升级系统glibc版本
1)我在当前系统想重新编译时,出现找不到<sys/timefd.h>文件问题,系统接口不支持
2)采用gcc静态编译,增加参数LDFLAGS = -L/usr/lib -pthread -static,在新系统运行异常
心急之下,直接升级系统的glibc版本,我下载glibc2.13版本(http://ftp.gnu.org/gnu/glibc/)
安装:
出现的一些错误如下链接都可以解决:
http://shillp.blog.sohu.com/143196402.html
./configure -> make -> make install ,完成之后我的系统崩溃了!
很多常用命令都无法使用,系统重启不成功,无奈急于调试,我又重新安装了系统。
总结:glibc升级需格外谨慎,很有可能造成系统崩溃。