• CentOS常见问题应对,升级make和gcc版本


    本文讲解了编译源码过程中的常见问题,以及如何升级make和gcc版本。

    点击上方“后端开发技术”,选择“设为星标” ,优质资源及时送达

    今天讲一个 CentOS 中编译时的常见问题:在编译源码过程中 make 或者 gcc 版本过低导致的异常 configure: error。

    具体报错如下:

    1. configure: error
    2. *** These critical programs are missing or too old: compiler
    3. *** Check the INSTALL file for required versions.
    4. 或者
    5. *** These critical programs are missing or too old: make compiler
    c4fc22f78b937b180962bdcbea292fd1.png

    此问题尤其容易出现在刚刚搭建的CentOS环境中,或者使用的安装包较新,应对方法就是把 make 或者 gcc 的版本进行升级。

    make 升级

    目标是将 make升级到到较新的 4.3 版本,我的操作系统版本是CentOS 7,具体操作如下:

    1.下载make安装包

    wget http://ftp.gnu.org/pub/gnu/make/make-4.3.tar.gz

    如需最新安装包可以去这里自行寻找:https://ftp.gnu.org/pub/gnu/make/

    2.解压安装包

    tar -zxvf make-4.3.tar.gz

    3.编译并且安装make

    1. cd make-4.3
    2. ./configure --prefix=/usr
    3. type make
    4. make check
    5. make install

    4.验证是否安装成功

    1. make -v
    2. [root@localhost build]# make -v
    3. GNU Make 4.3
    4. Built for aarch64-unknown-linux-gnu
    5. Copyright (C) 1988-2020 Free Software Foundation, Inc.
    6. License GPLv3+: GNU GPL version 3 or later //gnu.org/licenses/gpl.html>
    7. This is free software: you are free to change and redistribute it.
    8. There is NO WARRANTY, to the extent permitted by law.

    可见make的版本已经成功更新为4.3。

    gcc 升级

    目标是将 make升级到到较新的 11.2.0 版本,具体操作如下:

    1.下载make安装包

    wget http://ftp.gnu.org/gnu/gcc/gcc-11.2.0/gcc-11.2.0.tar.gz

    如需最新版本安装包请自行查找:http://ftp.gnu.org/gnu/gcc/

    2.解压缩安装包

    tar -zxvf gcc-11.2.0.tar.gz

    3.安装依赖

    1. yum -y install bzip2
    2. cd gcc-11.2.0
    3. ./contrib/download_prerequisites

    4.configuration 配置

    1. mkdir build
    2. cd build/
    3. ../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
    4. #–enable-languages表示你要让你的gcc支持那些语言,
    5. #–disable-multilib不生成编译为其他平台可执行代码的交叉编译器。
    6. #–disable-checking生成的编译器在编译过程中不做额外检查,
    7. #也可以使用*–enable-checking=xxx*来增加一些检查

    5.编译源码

    make

    这一步需要时间非常久,真的是非常非常久,因为我用的手机编译,大约用了2个小时…… 可以使用make -j4 让make最多运行四个编译命令同时运行,加快编译速度(建议不要超过CPU核心数量的2倍)。

    6.安装 gcc

    make install

    7.验证gcc是否更新成功

    1. gcc -v
    2. Using built-in specs.
    3. COLLECT_GCC=/usr/local/bin/gcc
    4. COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-pc-linux-gnu/11.2.0/lto-wrapper
    5. Target: x86_64-pc-linux-gnu
    6. Configured with: ../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
    7. Thread model: posix
    8. Supported LTO compression algorithms: zlib
    9. gcc version 11.2.0 (GCC)

    验如果显示的gcc版本仍是以前的版本,就需要重启系统。或者可以查看gcc的安装位置:which gcc,然后在查看版本/usr/local/bin/gcc -v,确定以及配置成功后可以将原先的版本删除

    8.删除旧版本gcc

    yum -y remove gcc g++

    9.配置软链接,使新版本gcc全局可用

    ln -s /usr/local/bin/gcc /usr/bin/gcc

    10.更新动态库

    1. #查看当前的动态库
    2. strings /usr/lib64/libstdc++.so.6 | grep CXXABI
    3. rm -f /usr/lib64/libstdc++.so.6
    4. ln -s /usr/local/lib64/libstdc++.so.6.0.29 /usr/lib64/libstdc++.so.6
    5. #查看更新后的动态库
    6. strings /usr/lib64/libstdc++.so.6 | grep CXXABI
    7. # 安装后的动态库会位于/usr/local/lib64目录下,
    8. #其他版本在该目录下寻找对应的动态库libstdc++.so.6.X.XX

    如果觉得对你有帮助,欢迎点赞、标🌟分享

    简单!这可能是最快速的个人博客搭建姿势!|原创

    2022-09-13

    ef4b27c63c7113eee0e92bfad185ac08.jpeg

    快来下载,免费!替代Navicat的开源数据库神器|强烈推荐

    2022-08-19

    ef85d492300d12254e04edd1b181b7ae.jpeg

    只会Redis?面试也可以脱颖而出|原创

    2022-08-08

    8bde67930a868ebee3dfddd71f5c188c.jpeg
  • 相关阅读:
    Day14 03-Shell函数定义及应用
    如何进行视频分割操作?这个方法一定要掌握
    C++中的通俗理解左值,右值,左值引用,右值引用
    Flink原理流程图简单记录
    基于Vue+ElementUI+MySQL+Express的学生管理系统(3)
    力扣:71. 简化路径
    Redis 实现延迟队列
    2024三掌柜赠书活动第十三期:API安全技术与实战
    智能车串级pid的使用
    后端程序员入门react笔记(四)-综合运用,写一个小demo
  • 原文地址:https://blog.csdn.net/sinat_32873711/article/details/126882390