https://my.oschina.net/u/728245/blog/184550
以前从没有升级过GCC,一直用系统默认的GCC版本,最近在研究好久没有用过的 C, 便有了升级GCC的想发,大致如下。
环境: CentOS-6.5-i386 , gcc-4.4.7 系统必须已经安装有一个编译器,因为 gcc 也是需要编译的
首先 gcc 编译需要三个额外库,下载并按照下面的顺序安装它们,如下:
1. gmp ftp://ftp.gnu.org/gnu/gmp
2. mpfr ftp://ftp.gnu.org/gnu/mpfr
3. mpc http://www.multiprecision.org/mpc
1. 编译安装 gmp
# tar -zxvf gmp-5.1.3.tar.gz
# cd gmp-5.1.3
# ./configure
# make && make install
2. 编译安装 mpfr
# tar -zxvf mpfr-3.1.2.tar.gz
# cd mpfr-3.1.2
# ./configure
# make && make install
3. 编译安装 mpc
# tar -zxvf mpc-1.0.tar.gz
# cd mpc-1.0
# ./configure
# make && make install
4.将下列动态链接库文件复制或者做一个软链接到 /lib 下,因为后面编译安装 gcc 的时候有可能找不到上面三个依赖库的共享库文件
/usr/local/lib/libmpc.so
/usr/local/lib/libmpc.so.3
/usr/local/lib/libmpfr.so
/usr/local/lib/libmpfr.so.4
/usr/local/lib/libgmp.so
/usr/local/lib/libgmp.so.10
4. 编译安装 gcc
gcc 编译参数说明:
--prefix //默认 gcc 的安装目录,CentOS-6.5 下面最好安装到 /usr 下,不然可能会有问题
--enable-languages //指定 gcc 能编译哪些语言的文件,每种语言用逗号分隔, 例如 c,c++,java
--disable-multilib //默认gcc 能在32位系统上将代码编译成64位程序,或者在64位系统上编译成32位程序,如果加上这个编译选项则表示关闭这个gcc的交叉编译功能。
# tar -zxvf gcc-4.8.2.tar.gz
# cd gcc-4.8.2
# mkdir build
# cd build
# ../configure --prefix=/usr
# make && make install
注意: 当 gmp、mpfr、mpc 编译的时候是自定义指定的安装路径,在编译 gcc 时需要加上下面的选项:
--with-mpc=MPC的安装目录
--with-mpfr=MPFR的安装目录
--with-gmp=GMP的安装目录