操作系统: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+