前言
今天编译caffe 的matlab接口,编译时提示gcc的版本太高,需要使用gcc 4.7.x,于是使用如下命令去装:
sudo apt-get install gcc-4.7
sudo apt-get install g++-4.7
结果提示,没有需要更新的内容。我有点不解。继续上网搜索。发现了如下命令,可以显示电脑安装了那些版本的gcc:
ls /usr/bin/gcc*
结果显示我的电脑已经安装了 gcc,g++ 4.7, 4.8, 5.4。
输入
gcc --version #或许 gcc -v
显示在用的gcc的版本是5.4。那我怎么使用gcc 4.7来编译caffe呢。
继续在网上搜索,找到了解决方法。
解决方法
查看gcc版本:
$gcc -v
gcc version 5.4.1 20160904 (Ubuntu 5.4.1-2ubuntu1~14.04)
查看是否安装gcc 4.7
ls /usr/bin/gcc*
(cleanpy35) lavi@amax:~/caffe$ls /usr/bin/gcc*
/usr/bin/gcc /usr/bin/gcc-4.9 /usr/bin/gcc-ar-4.7 /usr/bin/gcc-ar-5 /usr/bin/gcc-nm-4.8 /usr/bin/gcc-ranlib /usr/bin/gcc-ranlib-4.9 /usr/bin/gccxml_cc1plus
/usr/bin/gcc-4.7 /usr/bin/gcc-5 /usr/bin/gcc-ar-4.8 /usr/bin/gcc-nm /usr/bin/gcc-nm-4.9 /usr/bin/gcc-ranlib-4.7 /usr/bin/gcc-ranlib-5
/usr/bin/gcc-4.8 /usr/bin/gcc-ar /usr/bin/gcc-ar-4.9 /usr/bin/gcc-nm-4.7 /usr/bin/gcc-nm-5 /usr/bin/gcc-ranlib-4.8 /usr/bin/gccxml
如果没有4.7,安装4.7:
sudo apt-get install gcc-4.7 gcc-4.7-multilib g++-4.7 g++-4.7-multilib
安装好后输入以下指令:
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.7 50
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 40
接着输入:
sudo update-alternatives --config gcc
(cleanpy35) lavi@amax:~/caffe$ sudo update-alternatives --config gcc
There are 3 choices for the alternative gcc (providing /usr/bin/gcc).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/gcc-5 50 auto mode
1 /usr/bin/g++-4.7 40 manual mode
2 /usr/bin/gcc-4.7 50 manual mode
3 /usr/bin/gcc-5 50 manual mode
要维持当前值[*]请按回车键,或者键入选择的编号:我输入2, 将gcc-4.7设置为auto mode
接下来按照同样的方式设置 g++
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.7 50
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 40
接着输入:
sudo update-alternatives --config g++
(cleanpy35) lavi@amax:~/caffe$ sudo update-alternatives --config g++
There are 2 choices for the alternative g++ (providing /usr/bin/g++).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/g++-5 50 auto mode
1 /usr/bin/g++-4.7 50 manual mode
Press enter to keep the current choice[*], or type selection number: 1
update-alternatives: using /usr/bin/g++-4.7 to provide /usr/bin/g++ (g++) in manual mode
再次查看版本
gcc -v
gcc version 4.7.3 (Ubuntu/Linaro 4.7.3-12ubuntu1)
若需要删除可选项的可以键入以下指令:
sudo update-alternatives --remove gcc /usr/bin/gcc-4.7