缘由
Arm服务器运行Spark程序的时候报错
spark /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found
解决办法
译了更高版本的gcc,我用的gcc4.7.3,将新gcc的libstd++.so.6.x链接过去/usr/lib64/libstd++.so.6, 问题解决。
编译gcc
CentOS7默认gcc版本4.8.5
gcc -v
gcc 版本 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC)
源码编译
GCC源码地址为http://ftp.gnu.org/gnu/gcc
下载
wget http://ftp.gnu.org/gnu/gcc/gcc-8.3.0/gcc-8.3.0.tar.gz tar -zxvf gcc-8.3.0.tar.gz cd gcc-8.3.0利用源码包里自带的工具下载所需要的依赖项 ```bash ./contrib/download_prerequisites
注意:由于网络问题ftp://gcc.gnu.org/pub/gcc/infrastructure/ 下载容易卡住 具体路径见contrib/download_prerequisites 可手动下载,地址http://mirror.linux-ia64.org/gnu/gcc/infrastructure/ 然后放到gcc-8.3.0文件夹下面
3. 安装
```bash
mkdir build #创建编译输出目录
cd build
../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib #生成Makefile
make #编译
make install 安装
遇到错误
lbzip2: Cannot exec: No such file or directory
yum -y install bzip2configure: error: C++ preprocessor “/lib/cpp” fails sanity check
yum install glibc-headers yum install gcc-c++
