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看显示的信息是否是当前安装的版本。
祝您安装成功!
- CentOS-5.4-i386-bin-DVD源码安装gcc-4.8.0
- CentOS-5.4-i386-bin-DVD源码安装mysql-5.6.17
- Linux (CentOS-6.5-i386-bin-DVD)U盘启动安装
- 将光盘镜像CentOS-5.3-i386-bin-DVD.iso设置成为yum源
- CentOS上源码安装GCC 4.8.2
- centos 源码编译安装gcc 4.7.0
- CentOS下源码安装GCC 5.2.0
- CentOS 6.5 源码安装gcc-5.2.0
- ubuntu 12.04 i386安装gcc 4.8
- centos安装gcc-4.8.0
- CentOS 6.4 下源码安装gcc-4.8.1
- CentOS 6.4 编译安装 gcc-4.8.0
- CentOS 6.4 编译安装 gcc-4.8.0
- CentOS 6.4 编译安装 gcc-4.8.0
- CentOS 6.4 编译安装 gcc-4.8.0
- 安装CentOS-6.3-i386-minimal
- VMware虚拟机安装CentOS i386
- CentOs 安装gcc 4.8.1
- 13 结构体
- iOS开发准备篇-(1)Mac OS X日常操作
- Emmet(Zen Coding)官方文档 之六 自定义 Emmet
- linux下用库libxml2解析xml文件
- 黑马程序员_C语言_数据类型总结
- CentOS-5.4-i386-bin-DVD源码安装gcc-4.8.0
- 案例 - 快速启库到某一有效备份时间点
- 编写高质量代码改善java程序的151个建议——[1-3]基础?亦是基础
- Scripts:查询物理读最多的10个SQL的脚本hphy10.sql
- If-Modified-Since
- Remote Scripting进阶教程---远程执行服务器脚本
- Python笔记——string.strip()
- 虚拟机类加载机制
- FZU 2129 子序列个数(DP)