Linux 更新 gcc 版本

文章
林里克斯

有些软件需要新版本的 gcc 环境支撑,CentOS 默认 yum 安装的 gcc 环境版本比较低

实验平台:CentOS 7.7.1908


1.编译 node 报错,需要 gcc 版本 4.9.4

./configure --prefix=/usr/local/node
WARNING: C++ compiler too old, need g++ 4.9.4 or clang++ 3.4.2 (CXX=g++)
WARNING: warnings were emitted in the configure phase

2.官网提供的下载

ftp://gcc.gnu.org/pub/gcc/releases/
http://ftp.gnu.org/gnu/gcc/

3.下载包

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

4.编译

$ tar xf gcc-5.1.0.tar.gz
$ cd gcc-5.1.0/
$ ./contrib/download_prerequisites
$ ./configure --enable-checking=release --enable-languages=c,c++ --disable-multilib

如果这一步出现 错误

configure: error: in /usr/local/src/gcc-5.4.0/gcc-build-5.4.0': configure: error: no acceptable C compiler found in $PATH Seeconfig.log’ for more details.

执行 yum install gcc 再进行上述操作

5.编译安装

$ make && make install
#特别慢

6.验证版本

$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-unknown-linux-gnu/5.1.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ./configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
Thread model: posix
gcc version 5.1.0 (GCC)

7.解决 GLIBC 版本未更新问题

$ make
make -C out BUILDTYPE=Release V=1
make[1]: Entering directory `/root/node/out'
  touch b23a7b33991e9f10b7792babf8ee6bf89d24a1ab.intermediate
  LD_LIBRARY_PATH=/root/node/out/Release/lib.host:/root/node/out/Release/lib.target:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; cd ../deps/v8/gypfiles; mkdir -p /root/node/out/Release/obj/gen/torque-generated; "/root/node/out/Release/torque" ../src/builtins/base.tq ../src/builtins/array.tq ../src/builtins/array-copywithin.tq ../src/builtins/array-foreach.tq ../src/builtins/array-reverse.tq ../src/builtins/typed-array.tq ../src/builtins/data-view.tq ../third_party/v8/builtins/array-sort.tq -o "/root/node/out/Release/obj/gen/torque-generated"
/root/node/out/Release/torque: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /root/node/out/Release/torque)
/root/node/out/Release/torque: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /root/node/out/Release/torque)
/root/node/out/Release/torque: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /root/node/out/Release/torque)
make[1]: *** [b23a7b33991e9f10b7792babf8ee6bf89d24a1ab.intermediate] Error 1
rm b23a7b33991e9f10b7792babf8ee6bf89d24a1ab.intermediate
make[1]: Leaving directory `/root/node/out'
make: *** [node] Error 2

8.检查动态库

$ 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
GLIBC_2.3
GLIBC_2.2.5
GLIBC_2.14
GLIBC_2.17
GLIBC_2.3.2
GLIBCXX_DEBUG_MESSAGE_LENGTH
#缺少 GLIBCXX_3.4.20 / GLIBCXX_3.4.21

9.更新 lib

$ cp -rp /usr/local/lib64/libstdc++.so.6.0.21 /usr/lib64/
$ rm -rf /usr/lib64/libstdc++.so.6
$ ln -s /usr/lib64/libstdc++.so.6.0.21 /usr/lib64/libstdc++.so.6

10.再次检索库

$ 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
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBC_2.3
GLIBC_2.2.5
GLIBC_2.14
GLIBC_2.17
GLIBC_2.3.2
GLIBCXX_DEBUG_MESSAGE_LENGTH

Over~

版权协议须知!

本篇文章来源于 Uambiguous ,如本文章侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意

948 0 2020-09-25


分享:
icon_mrgreen.gificon_neutral.gificon_twisted.gificon_arrow.gificon_eek.gificon_smile.gificon_confused.gificon_cool.gificon_evil.gificon_biggrin.gificon_idea.gificon_redface.gificon_razz.gificon_rolleyes.gificon_wink.gificon_cry.gificon_surprised.gificon_lol.gificon_mad.gificon_sad.gificon_exclaim.gificon_question.gif
博主卡片
林里克斯 博主大人
一个致力于Linux的运维平台
运维时间
搭建这个平台,只为分享及记载自己所遇之事和难题。

现在时间 2024-04-20

今日天气
站点统计
  • 文章总数:240篇
  • 分类总数:29个
  • 评论总数:10条
  • 本站总访问量 214025 次

@奥奥

@Wong arrhenius 牛比

@MakerFace 厉害了!