系统环境:Centos7.4

今天在安装 Nodejs8.7 的时候,报了一个警告:

WARNING: C++ Compiler too old, need g++ 4.9.4 or clang++ 3.4.2 (CXX=g++)

然后,查了一下自己系统上安装的版本:4.8.5

好吧,不能用 yum 升级了,那就手动安装了吧

一、选择需要升级的版本

gcc ftp 下载地址列表

(我选择了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

注:bz2是一种压缩文件格式,若无法解压,安装 bzip2 即可:yum -y install bzip2

三、进入解压后的gcc文件夹,下载供编译需求的依赖项

cd gcc-build-5.4.0
./contrib/download_prerequisites

四、建立一个文件夹存放编译文件

mkdir gcc-build-5.4.0
cd gcc-build-5.4.0

五、生成 Makefile 文件

make

注:这个过程非常耗时,我的1核1G内存大约花了一个来小时

六、安装

sudo make install

七、重启服务器,验证版本

gcc -v

等了那么久,总算是成功了,很激动对不对?

但是!

我执行到上边以后,屁颠屁颠的跑去编译 nodejs 了,耍出了一个错误:

/usr/local/src/node-v8.7.0/out/Release/mksnapshot: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /usr/local/src/node-v8.7.0/out/Release/mksnapshot)

编译失败~ 劳资等了30分钟

好吧,出了问题终究是要解决的

问题原因:升级gcc时,生成的动态库没有替换老版本 gcc 动态库导致的

解决方案:将gcc最新版本的动态库替换系统中老版本的动态库。

(1). 查找编译gcc时生成的最新动态库

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

(2) 将找到的动态库libstdc++.so.6.0.21复制到/usr/lib64

cp /usr/local/src/gcc-5.4.0/gcc-build-5.4.0/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.21 /usr/lib64

(3). 切换工作目录至/usr/lib64,删除原来的软连接, 将默认库的软连接指向最新动态库。

cd /usr/lib64
rm -rf libstdc++.so.6
ln -s libstdc++.so.6.0.21 libstdc++.so.6

到这里才算是收工了。

参考链接:

IT笔录

如何在 Centos7 中安装 gcc的更多相关文章

  1. 如何在 Centos7 中安装 Mysql 5.7

    一.下载安装包 (1). 下载MySQL源码 (进入/usr/local/src目录,使用wget下载) cd /usr/local/src wget https://dev.mysql.com/ge ...

  2. 如何在 Centos7 中安装 nginx

    1. 添加 nginx 的 yum 源(官网安装说明) vi /etc/yum.repos.d/nginx.repo 在该文件中添加如下内容: [nginx]name=nginx repobaseur ...

  3. 如何在 CentOS7 中安装 Nodejs

    一.安装Nodejs 安装版本:10.13.0 1.安装必要的编译软件包 yum -y install gcc gcc-c++ 2.从源码下载Nodejs cd /usr/local/src wget ...

  4. 详解如何在CentOS7中使用Nginx和PHP7-FPM安装Nextcloud

    转载地址:https://www.jb51.net/article/109382.htm 这篇文章主要介绍了详解如何在CentOS7中使用Nginx和PHP7-FPM安装Nextcloud,会通过 N ...

  5. 在centos7中安装Robot Framework

    安装前景介绍: 最初,我们是在Windows环境下搭建Robot Framework来对我们的服务进行接口测试的(想知道如何在Windows下安装Robot Framework,可以参考我同事的博客h ...

  6. 如何在centos7上安装源码包

    在我们使用linux的过程中,有很多程序是通过红帽官网给的系统中安装的,但是一般来说,系统更新的速度比较慢,如果这个时候我们又想用最新版的该怎么办呢?总不能一直等系统升级吧╮(╯﹏╰)╭所以,我们可以 ...

  7. centos7中安装、配置、验证、卸载redis

    本文介绍在centos7中安装.配置.验证.卸载redis等操作,以及在使用redis中的一些注意事项. 一 安装redis 1 创建redis的安装目录 利用以下命令,切换到/usr/local路径 ...

  8. 在centos7上安装gcc、node.js(源码下载)

    一.在centos7中安装node.js https://www.cnblogs.com/lpbottle/p/7733397.html 1.从源码下载Nodejs cd /usr/local/src ...

  9. 如何在eclipse中安装Jess

    如何在eclipse中安装Jess 浏览:49 | 更新:2014-05-12 16:39 这个文章帮了不少忙,感谢! 但经我实践,还要把插件那些文件向/dropins/sdk下也放一份,才能成功. ...

随机推荐

  1. Delphi各种从文件里读取内容的方法

    Hi I am having a problem running a function to read a text file the problem seems to be that my anti ...

  2. 《C++ Primer》读书笔记 第一章

    读<C++ Primer>才知道,自己对C++知之甚少... 写个博客记录下自己C++的成长,只是读书笔记,不是对<C++ Primer>知识点的总结,而是对自己在书上看到的以 ...

  3. Spark之权威指南经典案例

    hadoop权威指南上有一个求历史最高温度的经典案例,源数据如下: -- sample.txt0067011990999991950051507004+68750+023550FM-12+038299 ...

  4. Python连载14-random模块&函数式编程

    ​一.random模块 1.函数:random() (1)用法:获取0~1之间的随即小数 (2)格式:random.random() (3)返回值:随机0~1之间的小数 2.函数:choice() ( ...

  5. 快速理解类的访问控制(public,protected,private)

    接触过面向对象编程的朋友们都知道类中的访问控制符无非有三个,public, protected, private. 理解他就先从期望他达到的效果先说吧 Public: 使成员对于整个程序内(类内类外) ...

  6. linux Apache设置https访问以及加载mod_ssl.so模块以及问题解决

    开始之前的话: 1.配置好服务器防火墙的443端口规则: 2.购买好证书文件,我是沃通证书,准备好证书,这里不演示证书的购买和安装. 3.根据服务器类型下载文件,apache一共有4个文件 这里提供沃 ...

  7. kubernetes实战篇之dashboard搭建

    系列目录 kubernetes dashboard是kubernetes官方提供的web管理界面,通过dashboard可以很方便地查看集群的各种资源.以及修改资源编排文件,对集群进行扩容操作,查看日 ...

  8. Java 添加、修改PPT幻灯片中的表格

    本文将介绍通过Java编程在PPT操作表格的方法.包括添加表格到PPT幻灯片,并设置表格样式.单元格对齐方式.单元格背景色.边框样式.字体.字号.合并单元格等:同时,通过加载已有表格的幻灯片也可以对表 ...

  9. 【MySQL插入更新重复值】ON DUPLICATE KEY UPDATE用法

    要插入的数据  与表中记录数据的 惟一索引或主键中产生重复值,那么就会发生旧行的更新 弊端:造成主键自增不连续.适合数据量不大的表. ON DUPLICATE KEY UPDATE后面的条件 eg有如 ...

  10. django-haystack+whoosh+jieba实现中文全文搜索

    先上效果图 附上个人网站:https://liyuankun.cn 安装依赖库 注意:这里我们不安装django-haystack,因为要添加中文分词的功能很麻烦,所以我直接集成了一个中文的djang ...