您的位置:首页 > 运维架构 > Linux

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

2014-05-27 21:34 531 查看
由于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看显示的信息是否是当前安装的版本。

祝您安装成功!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: