linux非root权限下 使用自己安装的gcc

问题:参加比赛使用集群跑程序时,碰到了以下错误,原因是gcc版本太低没有相应的库。
libstdc++.so.6: version `CXXABI_1.3.8' not found

1.首先通过指令strings /usr/lib64/libstdc++.so.6|grep CXXABI查看Linux服务器gcc版本中有哪些库,一般是gcc版本过低,但由于没有root权限,没有办法去升级已有的gcc,只好自己安装一个,安装过程网上很多。
2.安装后通过修改PATH使用自己的gcc
3.PATH修改方法
通过修改.bashrc文件:
vim ~/.bashrc 
//在最后一行添上:
export PATH=........../gcc-install/bin:$PATH
生效方法:(有以下两种)
1、关闭当前终端窗口,重新打开一个新终端窗口就能生效
2、输入“source ~/.bashrc”命令,立即生效
有效期限:永久有效
用户局限:仅对当前用户
4.配置以下内容,一般可以使用自己的gcc.
export PATH=/gpfs/home/asc01/zm/last/gcc/gcc-7.3.0/gcc-install/bin:$PATH
export PATH=/gpfs/home/asc01/zm/last/gcc/gcc-7.3.0/gcc-install/lib:$PATH
export PATH=/gpfs/home/asc01/zm/last/gcc/gcc-7.3.0/gcc-install/lib64:$PATH
export LD_LIBRARY_PATH=/gpfs/home/asc01/zm/last/gcc/gcc-7.3.0/gcc-install/lib:$LD_LIBRARY_PATH
5.若仍无法使用,还有最后一个方法
 有一个特殊的环境变量LD_PRELOAD, 可以强行替换共享库中运行的符号。 export LD_PRELOAD= “xxx.so”, 如果你程序运行过程中遇到了和xxx.so同名的符号,这个时候程序会使用到xxx.so中的符号
这里设置export LD_PRELOAD=“高版本gcc路径/lib64/libstdc++.so.6”;

你可能感兴趣的:(Linux)