CentOS 6.5 编译安装 gcc-4.9.2

首先 gcc 编译需要三个额外库,下载并按照下面的顺序安装它们,如下:

1. gmp     ftp://ftp.gnu.org/gnu/gmp

2. mpfr     ftp://ftp.gnu.org/gnu/mpfr

3. mpc     http://www.multiprecision.org/mpc

准备工作: 注:上次安装时,准备工作可以不做。

1. 编译安装 gmp

# tar -zxvf gmp-5.1.3.tar.gz

# cd gmp-5.1.3

# ./configure

# make && make install

 

2. 编译安装 mpfr

# tar -zxvf mpfr-3.1.2.tar.gz

# cd mpfr-3.1.2

# ./configure

# make && make install

 

3. 编译安装 mpc

# tar -zxvf mpc-1.0.tar.gz

# cd mpc-1.0

# ./configure

# make && make install

 

1.首先下载源代码

wgethttp://ftp.gnu.org/gnu/gcc/gcc-4.9.2/gcc-4.9.2.tar.bz2

 2.解压

tar -jxvf gcc-4.9.2.tar.bz2

 3.下载编译所需的依赖项

cd gcc-4.9.2 

./contrib/download_prerequisites 

cd ..

 4.建立编译输出目录

mkdir gcc-build-4.9.2

 5.进入此目录,执行以下命令,生成makefile文件

cd gcc-build-4.9.2

../gcc-4.9.2/configure--enable-checking=release --enable-languages=c,c++ --disable-multilib

 

gcc 编译参数说明:

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

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

 6.执行以下命令进行编译

make -j4           //机器是双核,故用j4能加快编译速度

 去喝个咖啡聊聊天,然后就编译好了

 

期间出现了如下问题

 

错误一:

configure: error: C++ compiler missing orinoperational

make[2]: \*** [configure-stage1-libcpp]Error 1   

make[2]: Leaving directory`/home/liukk/gcc-4.8.1'   

make[1]: \*** [stage1-bubble] Error 2   

make[1]: Leaving directory `/home/liukk/gcc-4.8.1'   

make: \*** [all] Error 2

解决办法:

安装如下内容:

yum install gcc-c++

错误二:

原因是:阿里云最低配置服务器,单核、512MB物理内存,内存不足导致的,由于阿里云的CentOS镜像没有划分SWAP分区,后来添加了Swap区,报错依旧。原来是/etc/sysctl.conf中设置的swappiness的值为0,这个值的默认值应该是60,报错解决

C++11标准在2011年8月份获得一致通过,这是自1998年后C++语言第一次大修订,对C++语言进行了改进和扩充。随后各编译器厂商都各自实现或部分实现了C++中的特性。

目标:升级GCC到4.8.2,以支持C++11。

1. 获取GCC 4.8.2包:wget http://gcc.skazkaforyou.com/releases/gcc-4.8.2/gcc-4.8.2.tar.gz;

2. 解压缩:tar -xf gcc-4.8.2.tar.gz;

3. 进入到目录gcc-4.8.2,运行:./contrib/download_prerequisites。这个神奇的脚本文件会帮我们下载、配置、安装依赖库,可以节约我们大量的时间和精力。

4. 编译安装 gcc

gcc 编译参数说明:
--prefix                        //默认 gcc 的安装目录,CentOS-6.5 下面最好安装到 /usr 下,不然可能会有问题
--enable-languages        //指定 gcc 能编译哪些语言的文件,每种语言用逗号分隔, 例如 c,c++,java
--disable-multilib           //默认gcc 能在32位系统上将代码编译成64位程序,或者在64位系统上编译成32位程序,如果加上这个编译选项则表示关闭这个gcc的交叉编译功能。

# tar -zxvf gcc-4.8.2.tar.gz
# cd gcc-4.8.2
# mkdir build
# cd build
# ../configure --prefix=/usr
# make && make install

注意: 当 gmp、mpfr、mpc 编译的时候是自定义指定的安装路径,在编译 gcc 时需要加上下面的选项:
--with-mpc=MPC的安装目录
--with-mpfr=MPFR的安装目录
--with-gmp=GMP的安装目录

5. 验证:gcc -v;或者g++ -v,如果显示的gcc版本仍是以前的版本,就需要重启系统;或者可以查看gcc的安装位置:which gcc;然后在查看版本 /usr/local/bin/gcc -v,通常gcc都安装在该处位置,如果显示为;

   

则表示已经升级成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值