/usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by 的解决

操作系统:ubuntu 14.04


将gcc升级到6.10编译

g++ -std=c++11 test.cpp
生成a.out可执行文件


在运行编译完的的执行文件时 出现如下错误

./a.out: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./a.out)

问题出现:自己升级了gcc 6.10 而g++版本却不是

所以下面重点讲述如何升级g++

原因:升级gcc时,生成的动态库没有替换老版本gcc的动态库导致的

解决:,将gcc最新版本的动态库替换系统中老版本的动态库即可解决。

解决源码如下:

shipeng@shipeng-HP:~/my_C++$ cd ~
shipeng@shipeng-HP:~$ cd /usr/lib/x86_64-linux-gnu/
shipeng@shipeng-HP:/usr/lib/x86_64-linux-gnu$ sudo cp/home/shipeng/gcc-6.1.0/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.22 /usr/local/lib64/
sudo: cp/home/shipeng/gcc-6.1.0/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.22: command not found
shipeng@shipeng-HP:/usr/lib/x86_64-linux-gnu$ sudo cp /home/shipeng/gcc-6.1.0/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.22 /usr/lib/x86_64-linux-gnu/
shipeng@shipeng-HP:/usr/lib/x86_64-linux-gnu$ sudo rm -rf libstdc++.so.6
shipeng@shipeng-HP:/usr/lib/x86_64-linux-gnu$ sudo ln -s libstdc++.so.6.0.22 libstdc++.so.6
shipeng@shipeng-HP:/usr/lib/x86_64-linux-gnu$ cd ~

将上述源码看懂 更改自己的相应目录即可


参考博客:http://www.cnblogs.com/lzpong/p/5755678.html

你可能感兴趣的:(C++,学习之路)