使用matconvnet,mex支持版本为6.3.x,导致使用GPU版本的matconvnet无法编译成功
官方下载网址如下:选择你想要的 gcc 版本,下载对应的 tar 包,这里我下载的是 gcc-6.3.0.tar.gz
创建存储目录为
sudo mkdir /usr/local/gcc
在下载文件夹中,解压并进入gcc-6.3.0目录
cd ~/Downloads
tar -zxf gcc-6.3.0.tar.gz
安装依赖
./contrib/download_prerequisites
结果报以下错误
configure: error: Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+.
Try the --with-gmp, --with-mpfr and/or --with-mpc options to specify
their locations. Source code for these libraries can be found at
their respective hosting sites as well as at
ftp://gcc.gnu.org/pub/gcc/infrastructure/. See also
http://gcc.gnu.org/install/prerequisites.html for additional info. If
you obtained GMP, MPFR and/or MPC from a vendor distribution package,
make sure that you have installed both the libraries and the header
files. They may be located in separate packages.
错误原因:安装gcc需要这三个依赖:GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+
解决方法:去下载页面,下载相应的包
#国外
ftp://gcc.gnu.org/pub/gcc/infrastructure/
#国内
http://www.mirrorservice.org/sites/sourceware.org/pub/gcc/infrastructure/
我这里是:mpc-0.8.1,mpfr-2.4.2,gmp-4.3.2
使用下面代码进行安装
#解压某个包
tar -jxvf mpc-0.8.1.tar.gz
#进入包文件
cd mpc-0.8.1
#生成Makefile
./configure
#make是用来编译的,它从Makefile中读取指令,然后编译
make
#make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置
sudo make install
依次安装好后在解压后的gcc-6.3.0目录下,配置编译选项
./configure --prefix=/usr/local/gcc/gcc-6.3.0 --enable-threads=posix --disable-checking --disable-multilib --enable-languages=c,c++ --disable-libsanitizer
使用make编译,会进行很长时间
make
sudo make install
#查看系统已安装
ls -l /usr/bin/gcc*
#设置软链接
sudo ln -s /usr/local/gcc/gcc-6.3.0/bin/gcc /usr/bin/gcc-6
#添加到系统管理器
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 40
#切换你当前使用的 gcc 版本
sudo update-alternatives --config gcc
#配置 g++6.3.0
sudo ln -s /usr/local/gcc/gcc-6.3.0/bin/g++ /usr/bin/g++-6
#添加到系统管理器
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-6 40
#切换你当前使用的 g++版本
sudo update-alternatives --config g++
#查看系统 gcc 版本
gcc --version
#查看系统 g++ 版本
g++ --version
1.Ubuntu安装低版本gcc详细教程(安装gcc6.3.0为例)
2.configure: error: Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+.