一直用gcc编译各种东西,第一次研究如何编译gcc
这就是一个鸡生蛋与蛋生鸡的问题

依赖

编译gcc需要gmp、mpfr和mpc,还需要预先有一个已经能用的gcc

首先安装gmp

http://ftp.gnu.org/gnu/gmp/ 下载一个符合要求的稳定版本的gmp的源码
这里我下载的是 http://ftp.gnu.org/gnu/gmp/gmp-5.0.1.tar.bz2

解压后从源码编译安装

1
2
3
4
5
tar jxf gmp-5.0.1.tar.bz2
cd gmp-5.0.1
sudo ./configure --prefix=/opt/gmp
sudo make
sudo make install

安装mpfr

http://ftp.gnu.org/gnu/mpfr/ 下载一个稳定版本
我选择的是 http://ftp.gnu.org/gnu/mpfr/mpfr-3.1.4.tar.bz2

1
2
3
4
5
6
7
tar jxf mpfr-3.1.4.tar.bz2
cd mpfr-3.1.4
sudo ./configure --prefix=/opt/mpfr \
--with-gmp-lib=/opt/gmp/lib \
--with-gmp-include=/opt/gmp/include
sudo make
sudo make install

安装mpc

http://ftp.gnu.org/gnu/mpc/mpc-1.0.3.tar.gz 下载
我选择的是http://ftp.gnu.org/gnu/mpc/mpc-1.0.3.tar.gz

1
2
3
4
5
6
7
8
9
tar zxf mpc-1.0.3.tar.gz
cd mpc-1.0.3
sudo ./configure --prefix=/opt/mpc \
--with-gmp-lib=/opt/gmp/lib \
--with-gmp-include=/opt/gmp/include \
--with-mpfr-lib=/opt/mpfr/lib \
--with-mpfr-include=/opt/mpfr/include
sudo make
sudo make install

上面依赖安装顺序不能错

后来听曹老师说可以用 apt 直接安装,血亏

1
sudo apt install libmpc-dev libmpfr-dev libgmp-dev libgmp3-dev

又一个后来,发现 gcc 源码中有脚本可以一键下载安装这些依赖

1
sh ./contrib/download_prerequisites

编译

然后进入gcc目录

配置编译配置

1
2
3
4
./configure \
--enable-checking=release \
--enable-languages=c,c++ \
--disable-multilib

执行 make -j8 然后去喝功夫茶