GCC升级 –`CXXABI_1.3.8′ not found

群晖 蚂蚁 53℃ 0评论

http://liuyongqian.com/2019/04/02/GCC%E5%8D%87%E7%BA%A7/

1. 选择升级版本
  • Linux系统默认安装的gcc版本均在4.9以下,一些软件比如NodeJS的编译需要比较高的版本
  • 选择需要升级的版本,http://mirror.koddos.net/gcc/releases/ ,当前选择版本为:gcc-7.4.0.tar.gz
2. 解压源码包
  • 将压缩包放在/usr/local下,进行解压:tar -zvxf gcc-7.4.0.tar.gz
  • 装备bzip2软件,之后的编译需要,执行:yum install bzip2
3. 开始编译安装
  • 下载供编译需要的依赖项
    cd /usr/local/gcc-7.4.0/ 
    

    后执行命令:

    ./contrib/download_prerequisites
    
  • 编译安装
    mkdir build  新建一个文件夹存放编译文件
    cd build     后进行编译:
    ../configure --enable-languages=c,c++ --enable-checking=release  -disable-multilib  仅安装64位执行
    make         生成Makefile文件,该过程可能会很耗时,起码90分钟
    make install 之后执行安装命令
    
4. 解决运行程序gcc出现’GLIBCXX_3.4.21’ not found
  • 4.1 具体错误
    /usr/node-v10.15.3/out/Release/torque: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /usr/node-v10.15.3/out/Release/torque)
    
  • 4.2 问题原因:升级gcc时,生成的动态库没有替换老版本 gcc 动态库导致
  • 4.3 解决方案:将gcc最新版本的动态库替换系统中老版本的动态库。
    • 查找编译gcc时生成的最新动态库
      sudo find / -name "libstdc++.so*"
      
      
      最新动态库为:/usr/local/gcc-7.4.0/build/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.24
      
    • 将找到的动态库libstdc++.so.6.0.24复制到/usr/lib64下
      cp /usr/local/gcc-7.4.0/build/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.24 /usr/lib64
      
    • 切换工作目录至/usr/lib64,删除原来的软连接,将默认库的软连接指向最新动态库。
      cd /usr/lib64
      rm -rf libstdc++.so.6
      ln -s libstdc++.so.6.0.24 libstdc++.so.6
      
5. 重启服务器,验证版本
  • 执行命令:

    gcc -v
    

转载请注明:有爱前端 » GCC升级 –`CXXABI_1.3.8′ not found

喜欢 (35)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(1)个小伙伴在吐槽
  1. https://www.jianshu.com/p/6be231fc2646
    蚂蚁2019-10-21 17:54 回复