• CentOS 6.6 升级GCC v7.5.0 (完整)


    0.为什么是GCC7.5

    CentOS7 自带的 gcc/g++ 版本是 4.8,如果没有安装,可以通过 yum 命令安装。

    由于 gcc/g++ 4.8 完全支持 C++ 11,支持部分 C++ 14,不支持 C++ 17,而完全支持 C++ 17 的是 g++ 7 及以上版本:

    个人不太建议安装GCC8.X,太新的编译器,所需要的依赖包、各种环境都需要最新版本,安装过程中会出现很多问题。而且还不一定那么稳定。

    本着够用就好的原则,GCC7.5完全支持C++17,是最理想的选择。

    1.下载源码,解压

     经测试,这个 https://ftp.gnu.org/ 地址还是很快的,而且是完整的,不想有些地方下载的是有缺文件的!!!!

    wget https://ftp.gnu.org/gnu/gcc/gcc-7.5.0/gcc-7.5.0.tar.xz
    tar -zxf gcc-7.5.0.tar.xz

    2.下载依赖

    我们可以直接用自带的脚本完成

    cd gcc-7.5.0
    ../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib

    3.编译安装

     编译比较耗时,我用了七八十分钟;双核cpu, 所以 make 参数 `-j2` :

    mkdir gcc-build-7.5.0
    cd gcc-build-7.5.0
    make -j2 && make install && date

    4.更新动态库

    这个,我编译安装后,好像 不用更新,添加PATH路径 /usr/local/lib64 就可以了。

    [root@wsvr cmake-build]# ll /usr/local/lib64/libstdc++.so*
    lrwxrwxrwx 1 root root       19 12月 17 13:10 /usr/local/lib64/libstdc++.so -> libstdc++.so.6.0.24
    lrwxrwxrwx 1 root root       19 12月 17 13:10 /usr/local/lib64/libstdc++.so.6 -> libstdc++.so.6.0.24
    -rwxr-xr-x 1 root root 11587712 12月 17 13:10 /usr/local/lib64/libstdc++.so.6.0.24
    -rw-r--r-- 1 root root     2397 12月 17 13:10 /usr/local/lib64/libstdc++.so.6.0.24-gdb.py
    [root@wsvr cmake-build]# ll /usr/lib64/libstdc++.so*
    lrwxrwxrwx 1 root root     19 12月 16 19:36 /usr/lib64/libstdc++.so.6 -> libstdc++.so.6.0.19
    -rwxr-xr-x 1 root root 995840 9月  30 10:17 /usr/lib64/libstdc++.so.6.0.19

    如果程序运行报错,检查动态库:

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

     从输出可以看出,gcc的动态库还是旧版本的。说明出现这些问题,是因为升级gcc时,生成的动态库没有替换老版本gcc的动态库。

     执行以下命令,查找编译gcc时生成的最新动态库:(在root权限下进行操作,后面都是,不再赘述)

    find / -xdev -name "libstdc++.so*"

    复制库到 /usr/lib64

    cp /usr/local/lib64/libstdc++.so.6.0.24 /usr/lib64

    删掉旧的libstdc++.so.6(这是一个软链接),创建新的libstdc++.so.6软链接

    rm -rf /usr/lib64/libstdc++.so.6
    ln -s /usr/local/lib64/libstdc++.so.6.0.24   /usr/lib64/libstdc++.so.6

    5.更多参考

    https://www.cnblogs.com/lzpong/p/5755678.html

    https://www.cnblogs.com/FengGeBlog/p/12994103.html

    https://www.cnblogs.com/music-liang/p/12900457.html

  • 相关阅读:
    XMPP框架 微信项目开发之XMPP配置——MySQL数据库、MySQLworkbench、Openfire服务器的安装与配置
    Mac Mysql 启动关闭和重启命令、重新设置root密码 、 卸载
    CocoaPods安装使用 关键点
    CocoaPods的介绍、安装、使用和原理
    iOS 组件化架构漫谈
    将自己库添加Cocoapods支持
    Appium移动端自动化测试-安卓真机+模拟器启动
    Java学习第二十五天
    Java学习第二十四天
    Java学习第二十三天
  • 原文地址:https://www.cnblogs.com/lzpong/p/14145855.html
Copyright © 2020-2023  润新知