赞
踩
11月15号,微软发布.Net8.0,便迫不及待的把手头负责的所有项目,全部升级到Net8.0。接着便开始把修改后的代码部署到Linux服务器上,正常下载编译完Net8.0,然后启动项目发现报错
/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found
解决办法:
方法1:安装高版本的gcc,例如 Gcc 5.40 版本
方法2:从其他服务器上找到 libstdc++.so.6.0.21 动态链接库,然后复制到服务器上,最后把链接 libstdc++.so.6 软连接到了 libstdc++.so.6.0.21
strings /usr/lib64/libstdc++.so.6 | grep GLIBC
http://www.netgull.com/gcc/releases/gcc-5.4.0/
或
http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-5.4.0/
例如我上传到目录 /home/gcc
然后进入目录,并解压文件 tar -xvf gcc-5.4.0.tar.gz
最后进入解压的文件 cd gcc-5.4.0
替换文件的下载地址 ftp://gcc.gnu.org/pub/gcc/infrastructure 改成
http://www.mirrorservice.org/sites/sourceware.org/pub/gcc/infrastructure
注意:这样做注意是为了提高下载速度,不然很大几率下载失败
- ./contrib/download_prerequisites
- mkdir build
- cd build
- ../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
- make
-
- make install
-
需要注意,执行到make的时候,需要很长很长的时间,一般至少1需要个小时
find / -name "libstdc++.so*"
- 先复制libstdc++.so.6.0.21文件到目录 /usr/lib64
- cp /home/gcc/gcc-5.4.0/build/prev-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.21 /usr/lib64
- 进入目录
- cd /usr/lib64
-
- ln -snf libstdc++.so.6.0.21 libstdc++.so.6
-
这样,就成功把 libstdc++.so.6 软连接到了 libstdc++.so.6.0.21,再次执行可以执行程序,发现错误消失,程序正常执行
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。