ununtu 16.04 下 离线安装gcc-6.3

ununtu 16.04 下 离线安装gcc-6.3

  • 问题说明
  • 预安装环境
  • GCC-6.3.0 安装
  • 其他

问题说明

在安装 Matlab2018b+matconvnet 时遇到了一个问题,就是gcc编译不成功,没办法,网上查了下,matlab2018b对应的gcc版本是6.3( 配适)。然而,apt-get并不能在线安装,目测安装的版本好像是6.5版本的,最开始编译cpu成功了,但是到了编译gpu时简直各种报错,没办法,只能尝试线下安装gcc-6.3了。

预安装环境

在安装的过程中,首先需要将需要配适的环境给装上,不然安装gcc时会出现各种报错,还有就是在安装的过程中,本人最开始又看别人博主众说纷纭的说卸载gcc什么的,在这里是没有卸载老版本的gcc的。下面是本人的下载链接以及安装步骤:
(gmp-6.1.2) (mpfr-4.0.2) (mpc-1.1.0) (gcc-6.3) (gcc-other)

过程中可能会遇到没有权限命名等情况,解决办法:
(在这里可能会遇到因为没有权限而无法创建文件夹这种情况,在这种环境下,给该文件夹及子文件夹读写权限:sudo chmod 777 * -R “这里 * 表示要赋予的权限的文件夹及其子文件夹”)

  1. M4
    晕死,折腾了好几天,只知道是用apt-get安装的了,命令好像是:sudo apt-get install m4 .如果不是这个代码的话就直接首先安装gmp,然后就会出现报错内容,内容里是有安装命令的(理解下嘛,第一次记录啦,后面会越来越好的);
  2. gmp
    在我的这一步中(默认已经下载并解压)
    首先,cd 在下载位置,例如我的地址在gmp地址放在 ~/application 文件夹下,因此, cd ~/application/gmp-6.1.2 。
    其次,在其文件夹里创建一个子文件夹:
    mkdir build
    最后,cd 在 build 后运行命令:
    …/gmp-6.1.2/configure --prefix=/usr/local/gmp-6.1.2
    make -j20
    sudo make install
    其中,–prefix 指向的是应用的安装地址, -j20 表示的是并行处理,在这里请根据自己cpu情况酌情加减数字,不并行同样可以编译成功,相应的,时间会有所延长(后面一样)。
  3. mpfr
    …/mpfr-4.0.2/configure --prefix=/usr/local/mpfr-4.0.2 --with-gmp=/usr/local/gmp-6.1.2
    make -j20
    sudo make install
    其中,–with-gmp 表示的是依赖的gmp库
  4. mpc
    …/mpc-1.1.0/configure –prefix=/usr/local/mpc-1.1.0 –with-gmp=/usr/local/gmp-6.1.2 –with-mpfr=/usr/local/mpfr-4.0.2
    make -j20
    sudo make install

GCC-6.3.0 安装

…/gcc-6.3.0/configure --prefix=/usr/local/gcc-6.3.0 --with-gmp=/usr/local/gmp-6.1.2 --with-mpfr=/usr/local/mppfr-4.0.1 --with-mpc=/usr/local/mpc-1.1.0 --enable-threads=posix --disable-checking --enable-languages=c,c++ --disable-multilib
make -j20
sudo make install
前面步骤与原装内容一致,cd到文件夹下,然后…。
其中,前面的安装地址和依赖库略过,
–desable-checking //生成编译器在编译过程中不做额外检查
–enable-languages //指定生gcc能编译哪些语言文件,每种语言文件之间用逗号分隔,如c,c++等
–disable-multilib //关闭交叉编译功能

在本人编译过程中出现了如下错误:
ununtu 16.04 下 离线安装gcc-6.3_第1张图片
*** [configure-stage1-target-libgcc] Error 1
*** [stage1-bugbble] Error 2

后面网上找了各种原因均无法能够顺利make通过,最终猜想可能是因为权限的原因而导致无法编译成功,在给文件读写权限后成功编译:

sudo chmod 777 * -R
//其中*表示放置gcc的文件,本人系统中文件夹均放在 ~/application 下,因此是:
sudo chmod 777 ~/application -R

当然也不排除是在给了环境变量的前提下:
sudo vim /ete/profile

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/gmp-6.1.2/lib:/usr/local/mppfr-4.0.1/lib:/usr/local/mpc-1.1.0/lib

source /etc/profile

最后,添加环境变量
export LD_LIBRARY_PATH=/usr/local/gcc-5.3/lib:/usr/local/gcc-5.3/lib64:$LD_LIBRARY_PATH

其他

当然,如果不是因为无法正常安装 gcc-6.3 这个魔鬼般的版本,也不会这么麻烦,下面讲解正常安装路径以及多版本gcc切换方法:

安装gcc
sudo apt-get install gcc-* gcc--multilib g+± g+±-multilib
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-
100 --slave /usr/bin/g++ g++ /usr/bin/g+±*
其中,100表示的是优先级,1-100,100最高,可通过改变优先级来改变默认gcc版本

切换
sudo update-alternatives --config gcc
选择所需要的数字对应的gcc版本来切换

第一次写,如果有什么错误或者遗漏的地方欢迎指正,谢谢大家!

(终于写完了第一篇博客,***,你是最棒的!此处***表示的是作者姓名)

你可能感兴趣的:(ununtu 16.04 下 离线安装gcc-6.3)