gcc-4.5.0编译手记

更新自己的编译工具链,编译gcc-4.5.0花费了三个晚上的休息时间。走了很多弯路,其实很简单。

    1. 下载gmp-5.0.1.tar.bz2、mpc-0.8.2.tar.gz、mpfr-3.0.0.tar.bz2解压缩,以默认配置编译(即全部执行./configure即可,我尝试过设置--prefix,会出现问题。或者设置LD_LIBRARY_PATH可以解决这个问题,但是我没测试。)

    2. 备份 /usr/local/lib下面的libgmp.so*和libmpfr.so*,然后删除这些libgmp.so*和libmpfr.so*。编译安装完成后记得还原。

    3. 下载gcc-4.5.0.tar.bz2编译。我选择的脚本:

             /home/yanyg/work/gnu/gcc/gcc-4.5.0/configure /
                --with-pkgversion=GCC-4.5.0-2010.07.23-cppgp /
                 --with-bugurl=www.cppgp.com /
                 --prefix=/home/yanyg/work/gnu/gcc/install-gcc-4.5.0 /
                  --with-endian=little /
                  --enable-threads=posix /
                  --enable-tls /
                  --with-cpu=i686 /
                  --with-arch=i686 /
                 --enable-bootstrap /
                  --enable-languages=c,c++ /
                  --disable-libada /
                 --enable-checking=release

 

    4. make -j4 && make install

    5. 进入 下查看版本信息:

yanyg@localhost bin]$ gcc -v
Using built-in specs.
Target: i686-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --enable-plugin --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch=i686 --build=i686-redhat-linux
Thread model: posix
gcc version 4.4.2 20091027 (Red Hat 4.4.2-7) (GCC)


-------------------------------------------------------------------------------------

 

[yanyg@localhost bin]$ ./gcc -v
Using built-in specs.
COLLECT_GCC=./gcc
COLLECT_LTO_WRAPPER=/home/yanyg/work/gnu/gcc/install-gcc-4.5.0/libexec/gcc/i686-pc-linux-gnu/4.5.0/lto-wrapper
Target: i686-pc-linux-gnu
Configured with: /home/yanyg/work/gnu/gcc/gcc-4.5.0/configure --with-pkgversion=GCC-4.5.0-2010.07.23-cppgp --with-bugurl=www.cppgp.com --prefix=/home/yanyg/work/gnu/gcc/install-gcc-4.5.0 --with-endian=little --enable-threads=posix --enable-tls --with-cpu=i686 --with-arch=i686 --enable-bootstrap --enable-languages=c,c++ --disable-libada --enable-checking=release --with-mpc=/home/yanyg/work/gnu/gcc/prerequisite/mpc-0.8.2/install --with-mpfr=/home/yanyg/work/gnu/gcc/prerequisite/mpfr-3.0.0/install --with-gmp=/home/yanyg/work/gnu/gcc/prerequisite/gmp-5.0.1/install
Thread model: posix
gcc version 4.5.0 (GCC-4.5.0-2010.07.23-cppgp)

    6. 编译一个 hello.c玩玩:

           

 

[yanyg@localhost bin]$ pwd
/home/yanyg/work/gnu/gcc/install-gcc-4.5.0/bin

[yanyg@localhost bin]$ ./gcc hello.c -o hello-4.5.0
[yanyg@localhost bin]$ gcc hello.c -o hello-4.4.0 
[yanyg@localhost bin]$ ls -l hello*               
-rwxrwxr-x. 1 yanyg yanyg 4887 2010-07-28 06:42 hello-4.4.0
-rwxrwxr-x. 1 yanyg yanyg 4699 2010-07-28 06:42 hello-4.5.0
-rw-rw-r--. 1 yanyg yanyg   76 2010-07-28 06:38 hello.c

        4.5.0版本生成的二进制更小些。或者是fc12本身带的编译器插入了redhat特有的信息?这些以及效率变化以后再探究吧。

 

 

-----------------------------------------------------------

错误记录:

  其间因为gmp和mpfr的路径选择,出现过一个错误,大致如下:

         configure: error: cannot compute suffix of object files:cannot compile

         See 'config.log' for more details.

  后来先升级了automake、autoconf、binutils等,问题仍然存在,查找了两天才找到解决方案:按照默认路径安装libgmp、libmpfr、libmpc。并且按照第2步所述操作文件备份及删除。即可编译通过。

  OK。。。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值