/usr/lib64/libc.so.6: version `GLIBC_2.32' not found , 我是在运行编译好的go程序时遇到的这个问题,其他编程语言遇到这个问题也可以按照这个思路解决
特别警告:解决问题时不要随便去下载或安装libc.so.6,不然你有可能会因为改动了系统环境
被坑得很惨,例如其他程序突然跑不动
导致这个问题的原因是,运行编译好的程序时,所在机器的系统核心包libc版本和程序所需要的包差别太大。一般情况是出现在不同系统编译后拉过去运行的时候会发生这个问题。
查看linux的核心包版本的方法:
ldd --version
错误里提示需要 2.32,但是本地却是 2.17 的版本,版本太低,所以跑不起来。
解决思路:先确定最终目标机器的 libc版本是啥,例如我的目标机器是国产麒麟系统,运行上面命令后发现是 2.18 ,那么我就去找了一个centos7.4的机器,查看后发现 libc是2.17 ,版本差别不大,一般不会有啥兼容问题,就直接重新编译代码,然后再将编译好的代码及程序挪到目标机器麒麟系统去跑,完美解决,不会再报一开始的错误。当然,如果没有多的机器,弄个docker容器去跑个编译,应该也可以的
还看到有些解决方式是去找和下载对应版本的libc包,这个的话其实不太建议,因为这个包后面也依赖其他包,或者需要重新编译,到时候又把你的系统环境给弄乱了,更麻烦也没必要