zoukankan      html  css  js  c++  java
  • Linux 服务器升级 gcc 【centOs 系统】

    Linux 服务器升级 gcc 【centOs 系统】

    一、【gcc升级步骤】

    1.下载gcc 4.8.5的压缩包

    下载地址:http://ftp.gnu.org/gnu/gcc/

    2.进入所下载目录,并下载

    // 进入用户目录
    user$ cd
    
    // 创建下载目录 并进入该目录
    user$ mkdir Download
    user$ cd Download
    
    Download$ wget http://ftp.gnu.org/gnu/gcc/gcc-4.8.5/gcc-4.8.5.tar.bz2
    
    

    2.解压缩

    # tar -jxvf gcc-4.8.5.tar.bz2
    

    3.进入解压目录,并执行命令

    这个神奇的脚本文件会帮我们下载、配置、安装依赖库,可以节约我们大量的时间和精力。

    # cd  gcc-4.8.5 
    # ./contrib/download_prerequisites
    

    4.建立一个目录供编译出的文件存放

    # mkdir gcc-build-4.8.5
    # cd gcc-build-4.8.5
    

    5.生成Makefile文件

    # ../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
    

    6.执行make ,执行安装

    此处耗时大约1小时。不建议使用 make -j4(开启 4 个进程),可能报错【1.运行空间不够大;2.没有足够的进程管理】。

    # make
    
    // 执行安装
    # make install
    

    8.完成后,测试

    # gcc -v
    # g++ -v
    

    二、【库升级】

    gcc升级成功后,编程c++11的程序还不能正常编写。还需要进行库升级。源码编译升级安装了gcc后,编译程序或运行其它程序时,有时会出现类似如下报错,这是因为升级gcc时,生成的动态库没有替换老版本gcc的动态库导致的,将gcc最新版本的动态库替换系统中老版本的动态库即可解决

    /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found
    

    1.检查

    # strings /usr/lib64/libstdc++.so.6 | grep GLIBC
    

    2.找到 gcc 4.8.5 最新的库文件

    # find / -name "libstdc++.so*"
    
    /home/gcc-4.8.5/gcc-build-4.8.5/stage1-x86_64-unknown-Linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
    /home/gcc-4.8.5/gcc-build-4.8.5/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.19
    /home/gcc-4.8.5/gcc-build-4.8.5/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so
    /home/gcc-4.8.5/gcc-build-4.8.5/prev-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
    /home/gcc-4.8.5/gcc-build-4.8.5/prev-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.19
    /home/gcc-4.8.5/gcc-build-4.8.5/prev-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so
    ...
    ...
    
    上面的libstdc++.so.6.0.19,就是目前4.8.5的新的库文件了。
    

    3.复制这个库文件到指定目录,并修改软连接

    # cp /home/gcc-4.8.5/gcc-build-4.8.5/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.19  /usr/lib64
    
    # cd /usr/lib64
    
    # rm libstdc++.so.6
    
    # ln -s libstdc++.so.6.0.19 libstdc++.so.6
    

    4.重新检查

    # strings /usr/lib64/libstdc++.so.6 | grep GLIBC
    
    GLIBCXX_3.4
    GLIBCXX_3.4.1
    GLIBCXX_3.4.2
    GLIBCXX_3.4.3
    GLIBCXX_3.4.4
    GLIBCXX_3.4.5
    GLIBCXX_3.4.6
    GLIBCXX_3.4.7
    GLIBCXX_3.4.8
    GLIBCXX_3.4.9
    GLIBCXX_3.4.10
    GLIBCXX_3.4.11
    GLIBCXX_3.4.12
    GLIBCXX_3.4.13
    GLIBCXX_3.4.14
    GLIBCXX_3.4.15
    GLIBCXX_3.4.16
    GLIBCXX_3.4.17
    GLIBCXX_3.4.18
    GLIBCXX_3.4.19
    ...
    (完成) 
    
    
  • 相关阅读:
    C# .NET Socket封装
    Web页面实现后台数据处理进度与剩余时间的显示
    彻底解决“从客户端中检测到有潜在危险的Request.Form值”
    自己封装的Windows7 64位旗舰版,微软官网上下载的Windows7原版镜像制作,绝对纯净版
    Oracle导入导出命令
    Oracle创建用户、表空间并设置权限
    Web Service 和WCF的比较
    Win10下IIS配置图解、MVC项目发布图解、IIS添加网站图解
    图表控件MsChart使用demo
    Excel中的宏--VBA的简单例子
  • 原文地址:https://www.cnblogs.com/jwen/p/8459018.html
Copyright © 2011-2022 走看看