GCC4.6.1安装及错误解决(完美)

1.    下载gcc-4.6.1安装包
    gcc各版本浏览地址:http://ftp.gnu.org/gnu/gcc/
    gcc-4.6.1浏览地址:http://ftp.gnu.org/gnu/gcc/gcc-4.6.1/
    gcc-4.6.1下载地址:http://ftp.gnu.org/gnu/gcc/gcc-4.6.1/gcc-4.6.1.tar.bz2

2.    将gcc-4.6.1.tar.bz2放到/opt文件夹下解压
    [root@duan ~]# cd /opt
    [root@duan opt]# tar xjvf gcc-4.6.1.tar.bz2

3.    创建安装目录
    [root@duan opt]# mkdir/usr/local/gcc-4.6.1/

4.    进入安装目录
    [root@duan opt]# cd /usr/local/gcc-4.6.1/

5.     配置安装文件
    [root@duan gcc-4.6.1]# /opt/gcc-4.6.1/configure--prefix=/usr/local/gcc-4.6.1

    Error:configure: error: Building GCCrequires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0+.Try the --with-gmp, --with-mpfrand/or --with-mpc options to specifytheir locations

    分析:

    要安装gcc需要GMPMPFRMPC这三个库,可从ftp://gcc.gnu.org/pub/gcc/infrastructure/下载相应的压缩包。由于MPFR依赖GMP,而MPC依赖GMPMPFR,所以要先安装GMP,其次MPFR,最后才是MPC。这里三个库我用的版本分别是gmp4.3.2mpfr2.4.2mpc0.8.1,都放在/opt文件夹下。

    ①  安装gmp4.3.2
        [root@duan opt]#
tar jxvf gmp-4.3.2.tar.bz2
        [root@duanopt]# mkdir/usr/local/gmp-4.3.2
        [root@duanopt]# cd/usr/local/gmp-4.3.2
        [root@duan gmp-4.3.2]#
/opt/gmp-4.3.2/configure --prefix=/usr/local/gmp-4.3.2
        [root@duan gmp-4.3.2]# make (编译)
        [root@duan gmp-4.3.2]# make install (执行安装)

    ②  安装mpfr2.4.2
        [root@duan opt]# tar jxvf mpfr2.4.2.tar.bz2
        [root@duan opt]# mkdir /usr/local/mpfr-2.4.2
        [root@duan opt]# cd /usr/local/mpfr-2.4.2
    [root@duan mpfr-2.4.2]# /opt/mpfr-2.4.2/configure --prefix=/usr/local/mpfr-2.4.2--with-gmp=/usr/local/gmp-4.3.2
    (注意配置的时候要把依赖关系选项加进去)
        [root@duan mpfr-2.4.2]# make
        [root@duan mpfr-2.4.2]# make install

    ③  安装mpc0.8.1
        [root@duan opt]# tar jxvf gmpc0.8.1.tar.bz2
        [root@duan opt]# mkdir /usr/local/mpc-0.8.1
        [root@duan opt]# cd /usr/local/mpc-0.8.1
  [root@duan mpc-0.8.1]# /opt/mpc-0.8.1/configure--prefix=/usr/local/mpc-0.8.1 --with-gmp=/usr/local/gmp-4.3.2--with-mpfr=/usr/local/mpfr-2.4.2
        [root@duan mpc-0.8.1]# make
        [root@duan mpc-0.8.1]# make install

    ④  再次安装GCC 配置安装选项
        [root@duan mpc-0.8.1]# cd /usr/local/gcc-4.6.1
        [root@duan gcc-4.6.1]# /opt/gcc-4.6.1/configure--prefix=/usr/local/gcc-4.6.1 -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

6.     编译安装文件
    [root@duan opt]# cd/usr/local/gcc-4.6.1/

    [root@duan gcc-4.6.1]# make

7.    执行安装GCC

    [root@duan gcc-4.6.1]# make install

8.    建立软链接

    [root@duan /]# sudo ln -s /usr/local/gcc-4.6.1/bin/gcc gcc461
    [root@duan /]# sudo ln -s/usr/local/gcc-4.6.1/bin/g++ g++461

9.    添加环境变量

    打开/etc目录下的bashrc文件添加如下代码:

  LD_LIBRARY_PATH=:/usr/local/mpc-0.8.1/lib:/usr/local/gmp-4.3.2/lib:/usr/local/mpfr-2.4.2/lib:/usr/local/gcc-4.6.1/lib

export LD_LIBRARY_PATH

 



编译过程中出现的错误如下:

ISSUE#1 
checking for suitable m4... configure: error: No usable m4 in $PATH or/usr/5bin (see config.log for reasons).
Solution:
#sudo apt-get install m4

ISSUE#2
In file included from /usr/include/stdio.h:28:0,
                 from../../../../gcc-4.7.0/libgcc/../gcc/tsystem.h:88,
                 from../../../../gcc-4.7.0/libgcc/libgcc2.c:29:
    /usr/include/features.h:324:26: fatal error: bits/predefs.h: Nosuch file or directory
    compilation terminated.
    make[5]: *** [_muldi3.o] Error 1
Analysis:
    Use 'locate bits/predefs.h' to find the path of this header. (in'/usr/include/x86_64-Linux-gnu')
Solution:
    #export C_INCLUDE_PATH=/usr/include/i386-linux-gnu &&export CPLUS_INCLUDE_PATH=$C_INCLUDE_PATH

ISSUE#3
In file included from /usr/include/features.h:389:0,
                    from /usr/include/stdio.h:28,
                    from ../../../../gcc-4.7.0/libgcc/../gcc/tsystem.h:88,
                    from ../../../../gcc-4.7.0/libgcc/libgcov.c:29:
    /usr/include/i386-linux-gnu/gnu/stubs.h:7:27: fatal error:gnu/stubs-32.h: No such file or directory
    compilation terminated.
    make[5]: *** [_gcov.o] Error 1
Analysis:
    Related to libc multilib, disable it with '--disable-multilib'should work.
Solution:
    add '--disable-multilib' and 'configure' again, then run 'make'.

ISSUE#4
    /usr/bin/ld: cannot find crti.o: No such file or directory
    collect2: error: ld returned 1 exit status
    make[3]: *** [libgcc_s.so] Error 1
    make[3]: *** Waiting for unfinished jobs....
Analysis:
    Use 'locate crti.o' to find this file. (in'/usr/lib/i386-linux-gnu/crti.o') Set LIBRARY_PATH (LDFLAGS)
Solution:
    #export LIBRARY_PATH=/usr/lib/i386-linux-gnu

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值