问题:
因为软件依赖低版本的gcc,而新版银河麒麟gcc默认时高版本,考虑到软件适配应该考虑最低版本的麒麟系统,需要将gcc降级。
过程中遇到问题,无法直接找到gcc5.4.0
这是没有软件源,需要添加其他软件源:
1、添加源镜像地址
cd /etc/apt
修改配置文件,这里我是用gedit打开sources.list
sudo gedit sources.list
像后面添加地址:
deb http://mirrors.aliyun.com/ubuntu/ xenial main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial maindeb http://mirrors.aliyun.com/ubuntu/ xenial-updates main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates maindeb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates universedeb http://mirrors.aliyun.com/ubuntu/ xenial-security main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security universe
添加后:
更新软件源列表,让其生效:
sudo apt-get update
注意:此处可能会遭到系统清除sources.list的情况,也就是会清除你刚才更改的部分,此处需要你重新更改sources.list。
2、安装GCC5.4
接下来找gcc-5.4和g++5.4的可安装版本:
apt-cache policy gcc-5
安装找到的版本:
sudo apt-get install gcc-5=5.4.0-6ubuntu1~16.04.12
对于g++来说也一样:
apt-cache policy g++-5
sudo apt-get install g++-5=5.4.0-6ubuntu1~16.04.12
3、设置GCC优先级
然后需要设置gcc和g++的优先级 需要将你安装的版本设置最高优先级才能生效,编译也使用这个版本。
先查看下优先级:
update-alternatives --display gcc
设置gcc优先级,最后的数字代表优先程度,数值越大,优先程度越高,可自行调整各版本的优先级
这里先查看下gcc和g++的版本,如果不存在先手动下载:
gcc -v
g++ -v
进入 /usr/bin可以看见gcc和g++的各个版本的文件:
这样设置其优先级,数值越大,优先级越高。
gcc
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 10
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 100
g++
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 10
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 100
这样优先级gcc-5 和g++-5为最高了。
查看设置后的版本,大功告成。