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

在Ubuntu 14.04上,升级gcc到6.10后,运行编译的程序遇到`GLIBCXX_3.4.21`版本不匹配的问题。原因是g++版本未同步升级。解决方法是更新系统中的g++到与gcc匹配的版本,通过替换旧版动态库为新版动态库来修复此问题。
最低0.47元/天 解锁文章
1542

被折叠的 条评论
为什么被折叠?



