./test: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./test)什么意思
时间: 2023-10-01 12:03:59 浏览: 40
这个错误通常是因为你的程序使用了一个需要 GLIBCXX_3.4.21 版本的 libstdc++.so.6 库,但是当前系统中没有这个版本的库。GLIBCXX_3.4.21 是 C++ 标准库的一个特定版本,它通常是由编译器提供的。解决这个问题的方法是安装一个包含这个版本库的软件包,或者重新编译你的程序以使用当前系统中可用的 C++ 标准库版本。
相关问题
/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found
根据提供的引用内容,报错信息是由于缺少GLIBCXX_3.4.21版本所致。为了解决这个问题,可以尝试以下方法:
1. 检查GLIBCXX的版本信息:
```shell
strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
```
这将列出libstdc++.so.6文件中包含的GLIBCXX版本信息。确保GLIBCXX_3.4.21版本在列表中。
2. 检查软连接:
```shell
ls -l /usr/lib64/libstdc++.so*
```
这将列出libstdc++.so文件的软连接信息。确保/lib64/libstdc++.so.6指向正确的libstdc++.so.6.0.21文件。
如果GLIBCXX_3.4.21版本确实不存在或软连接指向错误的文件,可以尝试以下解决方法:
1. 更新libstdc++库:
```shell
sudo yum update libstdc++
```
这将更新libstdc++库到最新版本,可能会包含GLIBCXX_3.4.21版本。
2. 重新安装libstdc++库:
```shell
sudo yum reinstall libstdc++
```
这将重新安装libstdc++库,确保正确的版本被安装。
请注意,对于系统库的更改可能需要root权限。如果你没有root权限,请联系系统管理员进行操作。
./NluModelModuleEXE: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by ./NluModelModuleEXE)
这个错误是由于缺少GLIBCXX_3.4.29版本引起的。解决这个问题有两种方法:
1. 通过替换libstdc++.so.6文件来解决[^1]:
```shell
cd /usr/local/lib64
sudo wget http://www.vuln.cn/wp-content/uploads/2019/08/libstdc.so_.6.0.26.zip
unzip libstdc.so_.6.0.26.zip
cp libstdc++.so.6.0.26 /usr/lib64
cd /usr/lib64
rm libstdc++.so.6
ln -s libstdc++.so.6.0.26 libstdc++.so.6
```
2. 通过升级glibc来解决:
```shell
wget http://ftp.gnu.org/gnu/glibc/glibc-2.17.tar.gz
tar -xvf glibc-2.17.tar.gz
cd glibc-2.17
mkdir build && cd build
../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
make && make install
```