ubuntu下CUDA编译的GCC降级安装

文章出自于:http://blog.csdn.net/lenbow/article/details/51596706
[toc]

1、源码安装gcc

预安装重要依赖

如果直接安装GCC,可能会遇到以下问题:

Building GCC requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0+

MPC :

下载 : http://www.multiprecision.org/mpc
解压:
$ tar xf mpc-0.9.tar.gz

GMP :

下载gmp-5.0.1.tar.bz2 : ftp://ftp.gnu.org/gnu/gmp/gmp-5.0.1.tar.bz2
解压 :
$ bunzip2 gmp-5.0.1.tar.bz2
$ tar xf gmp-5.0.1.tar

MPFR :

下载mpfr-3.1.0.tar.gz : http://ftp.gnu.org/gnu/mpfr/
解压 :$ tar xf mpfr-3.1.0.tar.gz

开始安装 :

先开始安装GMP。解压GMP的压缩包后,得到源代码目录gmp-5.0.1。在该目录的同级目录下建立一个临时的编译目录,这里命名为temp。然后开始配置安装选项,进入temp目录,输入以下命令进行配置:

$ sudo ../gmp-5.0.1/configure --prefix=/usr/local/gmp-5.0.1
$ sudo make
$ sudo make install

mpfr和mpc的安装方法与gmp类似。不过要注意配置的时候要把gmp与mpfr的依赖关系选项加进去,具体配置命令如下:

$ sudo ../mpfr-3.1.0/configure --prefix=/usr/local/mpfr-3.1.0 --with-gmp=/usr/local/gmp-5.0.1
$...(同上)
$sudo ../mpc-0.9/configure --prefix=/usr/local/mpc-0.9 --with-gmp=/usr/local/gmp-5.0.1 --with-mpfr=/usr/local/mpfr-3.1.0
$...(同上)

  安装好这三个库之后,就可以正式开始安装gcc了。 但有可能出现“error while loading shared libraries: libmpc.so.2: cannot open shared object file: No such file or directory”之类的错误。

以及提示错误:
”checking for suffix of object files… configure: error: in `…./x86_64-unknown-linux-gnu/libgcc’:
configure: error: cannot compute suffix of object files: cannot compile“

  需要加入刚刚编译的3个lib到库路径中。
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc-0.9/lib:/usr/local/gmp-5.0.1/lib:/usr/local/mpfr-3.1.0/lib 
为了以后使用的时候不再设置,我们可以修改/etc/bashprofile或者/etc/profile。这里修改的是全局变量,对所有用户有效,修改~/.bashprofile 和~/.profile可以修改用户的全局变量。

下载安装GCC

  • 下载gcc-4.6.4 : https://gcc.gnu.org/mirrors.html,链接中是各个gcc官方镜像入口,选一个认为速度比较好的镜像链接进入,各个版本的gcc文件保存在releases目录下。以gcc-4.6.4.tar.bz2为例子下载。
  • 解压:
    $ bunzip2 gcc-4.6.4.tar.bz2
    $ tar xf gcc-4.6.4.tar

与gcc-4.6.4建立一个build目录,命名为temp,进入temp目录下,开始典型的configure,make,install三步曲安装,build命令需要加入gmp、mpfr以及mpc的安装路径,并将gcc安装后缀设置为“46”。

$ sudo ../gcc-4.6.4/configure --prefix=/usr/local/gcc-4.6  --disable-multilib --enable-languages=c,c++ --with-gmp=/usr/local/gmp-5.0.1 --with-mpfr=/usr/local/mpfr-3.1.0 --with-mpc=/usr/local/mpc-0.9 --program-suffix=46 

接着执行make
$ sudo make
可能会make失败,查看config.log文件

如果发现问题为 :
conftest.c:10: fatal error: ppl_c.h: No such file or directory

需要安装ppl还有cloog的库。这里有介绍-> 传送门

$ sudo apt-get install libppl-dev libppl-c4 libppl13
$ sudo apt-get install libcloog-ppl-dev
(注意:可能随着版本的升级而有变化)
$ sudo make clean (清除下之前没成功编译的文件)
$ sudo make (继续make)
...
...
$ make check (可选)
...
$ make 
...

以上make需要花费漫长的时间~将近一个小时,请耐心等待


建立链接

安装完成可以在/usr/bin目录下进行以下操作(gcc的执行目录):

$ ls -l gcc*
lrwxrwxrwx 1 root root      7 Jun  7 10:59 gcc -> gcc-5
-rwxr-xr-x 1 root root 578808 Oct  3  2015 gcc-4.6.4
-rwxr-xr-x 1 root root 886968 Oct 17  2015 gcc-5

#其中gcc链接到gcc-5,需要将它更改到gcc-4.6.4:
$ sudo mv gcc gcc.bak
$ sudo ln -s gcc-4.6.4 gcc

查看gcc版本号:
$ gcc --version
如果显示

gcc (Ubuntu/Linaro 4.6.4-3ubuntu3) 4.6.4
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

说明gcc安装成功

我们在用同样的方法重新链接下g++,就能使用g++4.6.4了!

$ which g++  # 查找执行目录 #
/usr/bin/g++

$ ls -l /usr/bin/g++*
lrwxrwxrwx 1 root root      7 Jun  7 11:01 g++ -> g++-5*
-rwxr-xr-x 1 root root 578808 Oct  3  2015 g++-4.6.4*
-rwxr-xr-x 1 root root 886968 Oct 17  2015 g++-5*

$ sudo mv /usr/bin/g++ /usr/bin/g++.bak
$ sudo ln -s /usr/bin/g++-4.6.4 /usr/bin/g++

$ g++ -version
g++ (Ubuntu/Linaro 4.6.4-3ubuntu3) 4.6.4
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

说明g++安装成功


2、快速安装gcc的方法

$ sudo apt-get install gcc-4.7
$ sudo apt-get install g++-4.7

如果想安装更低版本的gcc,g++。新版的apt源中可能没有,需要自己设置,本人用此方法在ubuntu15.10下安装成功,gcc版本为4.7.4,g++为4.7.2。并成功编译安装CUDA Toolkit 7.5

接下来的步骤如前述-建立链接-部分一致,方便快捷的安装方法


文章出自于:http://blog.csdn.net/lenbow/article/details/51596706

猜你喜欢

转载自blog.csdn.net/lenbow/article/details/51596706