- 1.获取按转包并解压 (此处使用 5.4.0)
cd /usr/local/src
wget https://ftp.gnu.org/gnu/gcc/gcc-5.4.0/gcc-5.4.0.tar.bz2
tar -jxvf gcc-5.4.0.tar.bz2
- 2.下载依赖
cd gcc-5.4.0
./contrib/download_prerequisits
- 3.生成 makefile
mkdir gcc-build-5.4.0
cd gcc-build-5.4.0
../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
- 4.编译,安装
make(建议不要使用make -j来编译,虽然可以缩短编译时间,但极大可能会编译失败)
make install
解决运行程序 gcc 出现’GLIBCXX_3.4.21’ not found
这是因为升级 gcc 时,生成的动态库没有替换老版本 gcc 的动态库导致的,将 gcc 最新版本的动态库替换系统中老版本的动态库即可解决,运行以下命令检查动态库:
strings /lib64/libstdc++.so.6 | grep GLIBC
从输出结果可以看到并没有“GLIBCXX_3.4.21“,所以可以断定我们的程序运行时动态加载的是老的动态库,解决这个问题需要将当前链接文件的链接指向改成最新的动态库地址:
cp /usr/local/lib64/libstdc++.so.6.0.21 /lib64
cd /lib64
rm -rf libstdc++.so.6
ln -s libstdc++.so.6.0.21 libstdc++.so.6
然后你可以执行以下命令来查看’GLIBCXX_3.4.21’已经可以找到了
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于