(先写一个简单的处理思路后期补充)
自己出现的问题:因安装其他软件需要,本人将gcc升级到9.1,但是安装apex的时候,告诉我gcc版本不能高于8.0。相隔就一天。心态差点爆炸。(顺便加一句我改了之后告诉我要求gcc5.0以上版本。。。)
我安装的时候使用的是手动编译安装,另外一个是系统自带
系统自带版本:4.8.5
后来手动编译版本:9.1.0
查看gcc版本的命令:gcc -v
当然和这个一起的还有g++,c++都一样加-v查版本
查看系统带的(或者说是yum安装的gcc):rpm -q gcc
如果这个和系统中gcc -v的不一样可以按照我下面的步骤来
方法一,使用devtoolset
一,更新yum:sudo yum update
二,安装centos-release-scl:sudo yum install centos-release-scl
三,安装devtoolset:sudo yum install devtoolset-7-gcc*
你想安装哪个版本的就把7改成哪个版本
四,激活这个环境:scl enable devtoolset-8 bash
五,查看环境:gcc -v
每次使用这个版本的gcc时候都需要激活一下,安装的devtoolset是在 /opt/sh 目录下的
可以使用devtools中的enable进行激活如source /opt/rh/devtoolset-7/enable
方法二,使用软连接
主要思路就是使用sudo find / -name gcc
查找老的在哪里,然后用软连接,放到/usr/local/bin/
里面(如果已经多安装了一个的话)
一,编译并安装一个gcc版本
这个网上有很多,就是去官网下载一个gcc,然后下载依赖包,然后编译。回头我再加这部分内容。
二,查看系统当前版本(nvcc -v
)
如果你想要使用的不是这个版本可以进行替换
三,查找系统中gcc的位置
sudo find / -name gcc
一般会显示两个
我们只用管在bin下面的那个就好了。一般系统默认安装的在/usr/bin/gcc
中。
来看一下是不是系统默认安装的,使用命令/usr/bin/gcc -v
而我们使用gcc -v
所用的都是/usr/local/bin/gcc
中的,(放在usr/loacl/bin下面的你在任何地方输入都可以运行)
四,最后一步就是把系统的gcc9.1.0更换为4.8.5(这个比较重要前两个只是个解释,可能有人跟我遇到的不是一个问题这个也能有个思路)
其实就跟windows的环境变量一样,你装了两个,然后你指哪个他就用哪个。
第一步:将/usr/local/bin/gcc进行换名,也就是相当于备份。(系统默认使用gcc,所以换完名字之后想要再用9.1.0就可以使用gcc-9.1.0 -v
等命令)
sudo mv /usr/local/bin/gcc /usr/local/bin/gcc-9.1.0
之后我们把我们要用的在/usr/bin/gcc
拿过来设置为环境变量。
sudo ln -s /usr/bin/gcc /usr/local/bin/gcc
这样就相当于系统默认使用/usr/bin/gcc的gcc
这样还没有结束,因为gcc,g++,c++都是配套的。所以按照上面那两个命令把g++和c++也进行配置。
sudo mv /usr/local/bin/g++ /usr/local/bin/g++-9.1.0
sudo ln -s /usr/bin/g++ /usr/local/bin/g++
sudo mv /usr/local/bin/c++ /usr/local/bin/c++-9.1.0
sudo ln -s /usr/bin/c++ /usr/local/bin/c++