一、程序下载
首先从GNU上下载GCC包,ftp://gcc.gnu.org/,我使用的是最新发布版本gcc-4.7.0.tat.gz,
1 2 3 | tar zxvf gcc-4.7.0.tar.gz cd gcc-4.7.0 ./congigure |
此时会出现这样的错误:
1 | gcc configure: error: Building GCC requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0+ |
从错误中可以看出:GCC编译需要GMP, MPFR, MPC这三个库,我使用的版本为gmp-5.0.5,mpfr-3.1.0和mpc-0.8.1。这三个包从下面的地址下载:
- http://gmplib.org/;
- http://www.mpfr.org/;
- http://www.multiprecision.org/
二、安装GMP时也出现了错误:
1 | No usable m4 in $PATH or /usr/5bin (see config.log for reasons). |
由此可以看出是缺少M4文件。可以去这里下载:http://ftp.gnu.org/gnu/m4/ 。我这里下载了m4-1.4.15.tar.gz
1 2 3 4 5 6 | tar zxvf m4-1.4.15.tar.gz cd m4-1.4.15 ./configure make make check #强烈建议检查,确保正确 make install #需要root,建议在root中安装; |
三、有了M4就可以装别的了。由于MPFR和MPC都依赖于GMP包,所以首先安装GMP。
1 2 3 4 5 6 | tar jxvf gmp-5.0.5.tar.bz2 cd gmp-5.0.5 ./configure make make check make install |
四、安装MPFR
1 2 3 4 | tar jxvf mpfr-3.1.0.tar.bz2 cd mpfr-3.1.0 ./configure make |
出现问题:
1 | /usr/lib/gcc/i486-linux-gnu/4.4.1/cc1: error while loading shared libraries: libgmp.so.10: cannot open shared object file: No such file or directory. |
解决办法:
重启cache,在Synaptic Package administrator中安装squid,然后运行:
1 | /usr/sbin/squid -z |
重新运行:
1 2 | ./configure make |
运行成功!
1 2 | make check sudo make install |
五、安装MPC
1 2 3 4 5 6 7 | tar zxvf mpc-0.8.1.tar.gz cd mpc-0.8.1 ./configure --with-gmp-include=/usr/local/include --with-gmp-lib=/usr/local/lib make ldconfig -v #出现:error while loading shared libraries: libmpfr.so.1: cannot open shared objec,可以自己去man ldd 和ldconfig make check make install |
六、库路径
这几个库的默认位置是/usr/local/include和/usr/local/lib,GCC编译时可能会找不到这三个库,需要确认库位置是否在环境变量LD_LIBRARY_PATH中,查看环境变量内容可以用命令
1 | echo $LD_LIBRARY_PATH |
设置该环境变量命令如下:
1 | export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/lib" |
现在开始安装GCC
1 2 3 4 5 6 | tar xvf gcc-4.5.1.tar.gz cd gcc-4.5.1 ./configure make make check sudo make install |
原文来自:http://lwzhanghz.blog.163.com/blog/static/1368263692012516919455/