码迷,mamicode.com
首页 > 其他好文 > 详细

CentOS6.3升级GCC到GCC4.8.2

时间:2017-06-24 19:47:18      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:sudo   track   posix   个人   .net   ase   reads   程序   默认   

server上安装的GCC版本号过旧。已经不满足个人使用的版本号需求,故决定对其进行升级操作。由当前版本号3.4.6升级到4.8.2。然受权限制约。仅仅能安装到个人文件夹。因此假设您的server能够连接外网,而且有root或者sudo权限的话,可使用自助安装服务,为节省您的宝贵时间,可忽略本文。


所谓“工欲善其事必先利其器”。在权限受限。并不能连接外网的情况下。操作Linux环境的程序安装着实蛋疼,可没办法,系统须要。

当祖国须要你的时候,你要站出来大声说,“请找别人。”,麻烦归麻烦。结果是好的。

准备好GCC的压缩包gcc-4.8.2.tar.gz(105MB左右)后不再啰嗦,进入主题:

1、查看系统环境和gcc版本号。确认当前系统是否已经能够满足自身须要

$lsb_realease -a 

$gcc -v

2、解压gcc-4.8.2.tar.gz到当前文件夹下

$tar -zvxf gcc-4.8.2.tar.gz

3、进入gcc文件夹。查看编译须要的依赖文件

$cd gcc-4.8.2/

$vim ./contrib/download_prerequisites

技术分享

4、依据上述地址。分别下载mpfr/gmp/mpc三个文件,并解压安装。因为mpc依赖于mpfr和gmp,mpfr依赖于gmp,故安装顺序依次为gmp、mpfr、mpc。

gmp-4.3.2.tar.bz2

mpfr-2.4.2.tar.bz2

mpc-0.8.1.tar.gz

5、编译安装gmp

$tar -jvxf ~/gmp-4.3.2.tar.bz2

$cd gmp-4.3.2

$./configure --prefix=~/gcclib/gmp432(自己定义配置路径)

$make && make install

6、编译安装mpfr

$tar -jxvf ~/mpfr-2.4.2.tar.bz2 

$cd mpfr-2.4.2/

$./configure --prefix=~/gcclib/mpfr242 --with-gmp=~/gcclib/gmp432/ (依赖于gmp)

$make && make install

7、编译安装mpc

$tar -zxvf ~/mpc-0.8.1.tar.gz

$cd mpc-0.8.1/

$./configure --prefix=~/gcclib/mpc081 --with-gmp=~/gcclib/gmp432/ --with-mpfr=~/gcclib/mpfr242/ (依赖于gmp与mpfr)

$make && make install

8、编译安装gcc

$tar -zvxf ~/gcc-4.8.2.tar.gz 

$cd gcc-4.8.2

$./configure --prefix=~/gcc482 --enable-threads=posix --disable-checking --disable-multilib --enable-languages=c,c++ --with-gmp=~/gcclib/gmp432/ --with-mpfr=~/gcclib/mpfr242/ --with-mpc=~/gcclib/mpc081/(注意千万不要拼写错误。在这吃了非常多亏,导致浪费非常多时间,解决各种报错,反重复复。终于发现是參数写错。如"multilib"误写成"mutilib",參数这样写没错的,后面的--with指定gcc依赖包的路径)

--enable-threads=posix//可用线程

-disable-checking//禁用检查

--disable-multilib//默认gcc 能在32位系统上将代码编译成64位程序。或者在64位系统上编译成32位程序,假设加上这个编译选项则表示关闭这个gcc的交叉编译功能。

--enable-languages //指定 gcc 能编译哪些语言的文件。每种语言用逗号分隔, 比如 c,c++,java

具体的參数介绍能够在官网看到:https://gcc.gnu.org/install/configure.html

$假设此时运行"make"命令的话,那后果会相当的痛苦,默认安装情况,全部lib共享库都会被放到系统文件夹下如64位的/usr/lib64/,而我们手动指定文件夹的形式,系统在编译构建的时候是找不到的,就是说GCC找不到之前我们安装的三个lib库。so我们这样做,即使没权限,仍能够建立全局的暂时路径

$export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/gcclib/gmp432/lib:~/gcclib/mpfr242/lib:~/gcclib/mpc081/lib(保证原有的參数正确,加上新的共享路径,用冒号分隔)

$make(别傻等在屏幕前。听哥一句劝。这个过程的时间你能够赞赏一Hollywood大片啦。至少1.5小时,当然假设你的server牛逼的不行超级快请忽略)

$make install

$~/gcc482/bin/gcc -v (查看安装版本号,验证是否成功安装)

9、Complete。


在安装过程中,遇到的奇葩问题不少于10个,这里没有记录,由于没有原图,说服力不够,并且记录比較麻烦。所以假设你在安装过程中遇到什么问题,细致看看错误提示,谷歌一下,就非常easy解决,当然特别欢迎你留言,非常乐意帮你解决。关于自安装GCC的使用欢迎您阅读下一篇博文,MonaServer的安装使用

CentOS6.3升级GCC到GCC4.8.2

标签:sudo   track   posix   个人   .net   ase   reads   程序   默认   

原文地址:http://www.cnblogs.com/wzjhoutai/p/7074152.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!