CentOS-5.4-i386-bin-DVD源码安装gcc-4.8.0

来源:互联网 发布:华为s5700绑定mac地址 编辑:程序博客网 时间:2024/06/14 07:42

由于centos-5.4版本中得gcc版本过低,只有4.1.2,还未能支持原子操作,如果想安装mysql-5.6.17是不可能的,除非升级gcc。

闲话少叙,步入正题。

首先下载gcc-4.8.0.tar.gz  下载地址:http://gcc.cybermirror.org/releases/gcc-4.8.0/

tar zxvf gcc-4.8.0.tar.gz

创建一个文件夹来进行编译,这样保证了解压文件的“清洁”。如果在编译过程中,出现了错误,想重新编译,也没有必要重新解压文件。

mkdir gcc-build

cd gcc-build

../gcc-4.8.0/configure  --prefix=/usr/local/gcc-4.8.0 --enable-threads=posix  \

--disable-checking --disable-multilib --enable-languages=c,c++

首先来解释一下这些参数的含义:

--prefix指定了文件的安装路径,--enalbe-threads=posix制定POSIX/Unix98作为线程支持库 

--disable-checking关闭一些内部检查,减少编译时间 --disable-multilib  取消过目标库编译的,即取消32位库编译

--enable-languages=c,c++用来指定编译器支持的语言。


开始编译了......

不出意外,会出现这样的错误。

gcc configure: error: Building GCC requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0+

从错误中可以看出:gcc编译需要GMP,MPFR,MPC这三个库。

别着急,下面一个一个的来安装

注意这三个包的安装是有顺序的,mpfr依赖gmp,mpc既依赖gmp又依赖mpfr。


安装gmp 下载地址:http://gmplib.org/

tar zxvf gmp-4.3.2.tar.gz

mkdir gmp-build

cd gmp-build

../gmp-4.3.2/configure --prefix=/usr/local/gmp-4.3.2 #安装路径

make

make check #这步命令是为了检测,编译过程是否出现了error

make install


安装mpfr 下载地址:http://www.mpfr.org/

 tar zxvf mpfr-2.4.2.tar.bz2

mkdir mpfr-build

cd mpfr-build

../mpfr-2.4.2/configure --prefix=/usr/local/mpfr-2.4.2 --with-gmp=/usr/local/gmp-2.4.2 

make 

make check

make install


安装mpc 下载地址:http://www.multiprecision.org/

tar zxvf mpc-0.8.1.tar.gz 

mkdir mpc-build

cd mpc-build

../mpc-0.8.1/configure --prefix=/usr/local/mpc-0.8.1  --with-gmp=/usr/local/gmp-4.3.2  --with-mpfr=/usr/local/mpfc-2.4.2

make 

ldconfig -v #主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库(格式如前介绍,lib*.so*),进而创建出动态装入程序                         #(ld.so)所需的连接和缓存文件.缓存文件默认为 /etc/ld.so.cache,此文件保存已排好序的动态链接库名字列表。通常在系统启动时运行,而当用户安装了一个新的动态链接                     #库时,就需要手工运行这个命令.

make check

make install


这三个库安装在/usr/local/下面,gcc编译时找不到这三个库,需要设置环境变量LD_LIBRARY_PATH。首先查看环境变量中是已经存在了相关路径,

命令如下:

echo $LD_LIBRARY_PATH

打开etc/profile文件,在末尾追加如下设置

export  LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/gmp-4.3.2/lib:/usr/local/mpfr-2.4.2/lib:/usr/local/mpc-0.8.1/lib

保存退出

执行命令

source ~/.bash_profile

不过在当前系统中,只有重启才能生效。

执行 reboot


可以喘一口气了,可以重新安装gcc-4.8.0了。

mkdir gcc-build

cd gcc-build

make clean

 ../gcc-4.8.0/configure  --prefix=/usr/local/gcc-4.8.0 --enable-threads=posix --disable-checking --disable-multilib --enable-languages=c,c++ --with-gmp=/usr/local/gmp-4.3.2/ --with-mpfr=/usr/local/mpfr-2.4.2/ --with-mpc=/usr/local/mpc-0.8.1/

make

make check

make install


......一个漫长的过程,估计持续一个小时。


安装完毕,接着进入十分关键的一步。

由于gcc安装在/usr/local/gcc-4.8.0路径下,该路径下包括了lib/ 、bin/、include/

这些文件还没有进入搜索路径。(系统默认搜索路径在/usr/include 、/usr/lib、/usr/bin目录下)

因此需要设置环境变量。

打开/etc/profile文件在刚才配置LD_LIBRARY_PATH的后面增加/usr/local/gcc-4.8.0/lib

接着配置PATH

echo PATH=$PATH:/usr/local/gcc-4.8.0/bin

保存退出

source ~/.bash_profile

重启reboot生效


还没结束呢。如果不信的话,可以输入gcc -v检测当前gcc版本。

接着覆盖以前存在的版本。

在终端直接输入gcc之所以能被系统识别是因为,gcc这个符号链接位于/usr/bin目录下

该目录是系统搜索路径之一。因此,只需要覆盖/usr/bin目录下的符号链接即可。

在覆盖之前,提一句,不知道读者是否知道linux系统下除了有gcc、g++之外,还有cc和c++。

在覆盖gcc和g++的时候,别忘了覆盖cc和c++。

我在CentOS-5.4-i386-bin-DVD源码安装mysql-5.6.17这篇博文中已经提到了。

命令如下:

rm -f  /usr/bin/gcc

ln -s /usr/local/gcc-4.8.0/bin/gcc /usr/bin/gcc

rm -f /usr/bin/g++

ln -s /usr/local/gcc-4.8.0/bin/g++ /usr/bin/g++

rm -f /usr/bin/cc

ln -s /usr/local/gcc-4.8.0/bin/gcc /usr/bin/cc

rm -f /usr/bin/c++

ln -s /usr/local/gcc-4.8.0/bin/g++ /usr/bin/c++


到此为止,终于安装完gcc了。

检验一下劳动成果吧!

命令gcc -v看显示的信息是否是当前安装的版本。


祝您安装成功!





0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 七个月宝宝感冒流鼻涕咳嗽怎么办 孩子握笔姿势不正确怎么办 走久了脚底板痛怎么办 不会给宝宝拍嗝怎么办 打了肉毒素淤青怎么办 新生儿一吃母乳就睡觉怎么办 10岁半宝宝缺钾怎么办 宝宝吃不到乳晕怎么办 喂母乳乳头破了怎么办 宝宝吸了乳头痛怎么办 喂母乳奶头很疼怎么办 孩子吸的乳头痛怎么办 新生儿一直睡觉不吸吮怎么办 新生儿光睡觉不吃奶怎么办 婴儿不吸母亲的奶怎么办 肾里有结石一直不掉下来怎么办 宝宝拍不出来嗝怎么办 未满月宝宝溢奶怎么办 吃母乳老是吐奶怎么办 宝宝吃母乳吐奶怎么办 新生儿三天没大便了怎么办 奶水多宝宝呛奶怎么办 婴儿的含乳姿势不正确怎么办 一个月竖着抱了怎么办 乳头被婴儿吸痛怎么办 婴儿从鼻孔吐奶怎么办 宝宝习惯含着乳头睡觉怎么办? 宝宝习惯奶瓶不吃乳头怎么办 婴儿从鼻子吐奶怎么办 宝宝从鼻孔出奶怎么办 一个月婴儿溢奶怎么办 刚出生婴儿溢奶怎么办 宝宝含不住乳晕怎么办 宝宝含不了乳晕怎么办 宝宝溢奶一直哭怎么办 宝宝倒奶很多次怎么办 宝宝吃了润肤乳怎么办 奶瓶很难吸出奶怎么办 2个月宝宝奶睡怎么办 孕四个月轻度缺碘怎么办 宝宝吃了奶粉呕吐怎么办