1,编译环境:(使用的是大家公用的服务器,为了不影响其他人的编译环境,所以后续自己安装工具的路径都是自己用户下的目录,并设置自己用户的PATH)
Ubuntu 12.04.5 LTS (GNU/Linux 3.13.0-32-generic x86_64)
gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
GNU Make 3.81
2,gcc源代码:
可以去gun上下载,http://www.gnu.org/prep/ftp.html里面列出了下载的镜像站点,我们可以找一个国内的下载,比如https://mirrors.ustc.edu.cn/gnu/,gcc就在https://mirrors.ustc.edu.cn/gnu/gcc/,从列表里可以找到,我下载了目前还在更新维护的gcc-6.5.0.tar.gz这个版本。(当前最新8.2版本编译会有各种问题,放弃了)
3,编译:(首先看INSTALL下面的编译说明)
hanqiang@ubuntu:~/tools/src$ tar zxf gcc-6.5.0.tar.gz
hanqiang@ubuntu:~/tools/src$ cd gcc6.5.0/
hanqiang@ubuntu:~/tools/src/gcc-6.5.0$ mkdir build
hanqiang@ubuntu:~/tools/src/gcc-6.5.0$ cd build/
hanqiang@ubuntu:~/tools/src/gcc-6.5.0/build$ ../configure --prefix=/home/sysapp/hanqiang/tools/gcc
提示
configure: error: Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+.
(contrib/download_prerequisites命令在INSTALL/download.html中有说明)
hanqiang@ubuntu:~/tools/src/gcc-6.5.0$ contrib/download_prerequisites
--2018-12-01 09:20:52-- ftp://gcc.gnu.org/pub/gcc/infrastructure/mpfr-2.4.2.tar.bz2
=> `mpfr-2.4.2.tar.bz2'
Resolving gcc.gnu.org (gcc.gnu.org)... 209.132.180.131
Connecting to gcc.gnu.org (gcc.gnu.org)|209.132.180.131|:21... failed: Connection refused.
网络不通,只能自己到https://mirrors.ustc.edu.cn/gnu/上依次下载,要下载哪个版本呢,打开contrib/download_prerequisites文件看一下
MPFR=mpfr-2.4.2
GMP=gmp-4.3.2
MPC=mpc-0.8.1
于是分别下载gmp-4.3.2.tar.gz,mpfr-2.4.2.tar.gz和mpc-1.0.1.tar.gz(gun上没有mpc-0.8.1版本,找个比它大一点的)后,拷贝到~/tools/src/gcc-6.5.0源代码目录下
hanqiang@ubuntu:~/tools/src/gcc-6.5.0$ tar zxf gmp-4.3.2.tar.gz
hanqiang@ubuntu:~/tools/src/gcc-6.5.0$ mv gmp-4.3.2 gmp
hanqiang@ubuntu:~/tools/src/gcc-6.5.0$ tar zxf mpfr-2.4.2.tar.gz
hanqiang@ubuntu:~/tools/src/gcc-6.5.0$ mv mpfr-2.4.2 mpfr
hanqiang@ubuntu:~/tools/src/gcc-6.5.0$ tar zxf mpc-1.0.1.tar.gz
hanqiang@ubuntu:~/tools/src/gcc-6.5.0$ mv mpc-1.0.1 mpc
hanqiang@ubuntu:~/tools/src/gcc-6.5.0$ cd build/
(打开INSTALL/configure.html看如何配置)
hanqiang@ubuntu:~/tools/src/gcc-6.5.0/build$ ../configure --prefix=/home/sysapp/hanqiang/tools/gcc
hanqiang@ubuntu:~/tools/src/gcc-6.5.0$ make -j32
hanqiang@ubuntu:~/tools/src/gcc-6.5.0$ make install
然后把/home/sysapp/hanqiang/tools/gcc/bin加到PATH前面,也就是--prefix参数设置的安装路径/bin