源码编译 gcc
https://www.vultr.com/docs/how-to-install-gcc-on-centos-6
https://www.dwhd.org/20170517_083340.html
yum install libmpc-devel mpfr-devel gmp-devel zlib-devel cmake
yum install svn texinfo-tex flex zip libgcc.i686 glibc-devel.i686
在 source 文件中,使用ldconfig
命令,可以检查 dll 的配置。
俄罗斯或者日本的 mirror 会快许多,linux 下可以使用 md5sum 对下载下来的文件进行校验!
1 | http://gcc.gnu.org/install/ |
3.1. 解压 gcc-4.9.0.tar.gz
得到目录 gcc-4.9.0,进入目录
#tar -xvzf gcc-4.9.0.tar.gz
#cd gcc-4.9.0
3.2. 下载编译准备文件
主要是需要下面的库文件(需要完整版本,下载全部文件)
MPFR=mpfr-2.4.2
GMP=gmp-4.3.2
MPC=mpc-0.8.1
ISL=isl-0.12.2
CLOOG=cloog-0.18.1
执行
1 | ./contrib/download_prerequisites |
如果编译机器不能上网,直接打开文本文件 download_prerequisites,把里面
依赖的库下载回来后,放在指定目录,然后注释下载命令,再次执行
contrib/download_prerequisites,把相关文件解压,并建立链接。
1 | vi contrib/download_prerequisites |
注释 wget 相关的内容,手动把这些文件下载回来,拷贝到工作目录 gcc-4.9.0下。
1 | ./contrib/download_prerequisites |
3.3. 创建编译目录并编译安装
指定编译语言会比较好,这样make会更容易通过。
1 | mkdir ../gcc-build-4.9.0 |
or (建议使用下面的配置)
1 | ../gcc-4.9.0/configure --prefix=/usr/local/gcc-4.9.0 --with-system-zlib --disable-multilib --enable-languages=c,c++,java |
一定要检查一下 config.log 是否有出错!!!
通过检查 config.log。可以看到上一个 gcc 采用的 config 配置
1 | 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 --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_32=i686 --build=x86_64-redhat-linux |
1 | yum install -y flex texinfo |
make -j$(getconf _NPROCESSORS_ONLN) && make install
编译后安装到 /usr/local/gcc-4.9.0
3.4. 验证安装
#cd /usr/local/gcc-4.9.0
#./bin/gcc -v
看到版本信息