这个报错是因为手动编译安装gcc/g++后没有更新头文件,解决方法有2个。
一个是临时的解决方案:
export LD_LIBRARY_PATH=/usr/local/lib64:$LD_LIBRARY_PATH
然后就会在/usr/local/lib64
下找到需要的libstdc++.so文件。
另一种解决方案参考这篇博客:解决类似 /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21’ not found 的问题 - IT笔录
解决过程:
root@:~# ls -l /lib64/libstdc++.so.6lrwxrwxrwx 1 root root 19 Jul 15 20:17 /lib64/libstdc++.so.6 -> libstdc++.so.6.0.19root@:~# ls -l /lib64/libstdc++.so* lrwxrwxrwx 1 root root18 May 9 /lib64/libstdc++.so.5 -> libstdc++.so.5.0.7-rwxr-xr-x 1 root root 830776 Mar 6 /lib64/libstdc++.so.5.0.7lrwxrwxrwx 1 root root19 Jul 15 20:17 /lib64/libstdc++.so.6 -> libstdc++.so.6.0.19-rwxr-xr-x 1 root root 999944 Jun 7 /lib64/libstdc++.so.6.0.19root@:~# ninja ninja: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ninja)ninja: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by ninja)root@:/usr/lib64# ls -l libstdc++.so.6lrwxrwxrwx 1 root root 19 Jul 15 20:17 libstdc++.so.6 -> libstdc++.so.6.0.19root@:/usr/lib64# ln -sf libstdc++.so.6.0.25 libstdc++.so.6root@:/usr/lib64# ls -l libstdc++.so.6lrwxrwxrwx 1 root root 19 Jul 16 17:40 libstdc++.so.6 -> libstdc++.so.6.0.25root@:~# ninja --version1.9.0root@:~# strings /usr/lib64/libstdc++.so.6 | grep GLIBCGLIBCXX_3.4GLIBCXX_3.4.1GLIBCXX_3.4.2GLIBCXX_3.4.3GLIBCXX_3.4.4GLIBCXX_3.4.5GLIBCXX_3.4.6GLIBCXX_3.4.7GLIBCXX_3.4.8GLIBCXX_3.4.9GLIBCXX_3.4.10GLIBCXX_3.4.11GLIBCXX_3.4.12GLIBCXX_3.4.13GLIBCXX_3.4.14GLIBCXX_3.4.15GLIBCXX_3.4.16GLIBCXX_3.4.17GLIBCXX_3.4.18GLIBCXX_3.4.19GLIBCXX_3.4.20GLIBCXX_3.4.21GLIBCXX_3.4.22GLIBCXX_3.4.23GLIBCXX_3.4.24GLIBCXX_3.4.25GLIBC_2.2.5GLIBC_2.3GLIBC_2.14GLIBC_2.16GLIBC_2.17GLIBC_2.3.2GLIBCXX_DEBUG_MESSAGE_LENGTH