gcc-4.5.2编译手顺
1. 写在前面
安装之前,系统中必须要gcc的编译器,并且是可用的,或者用环境变量指定系统上的编译器。
如果系统上没有编译器,不能安装源代码形式的GCC 4.5.2。
如果是这种情况,可以在网上找一个与你系统相适应的如RPM等二进制形式的GCC软件包来安装使用。
本文介绍的是以源代码形式提供的GCC软件包的安装过程,软件包本身和其安装过程同样适用于其它Linux和Unix系统。
2. 准备
需要gcc-4.5.2的压缩包.我的是gcc-4.5.2.tar.bz2。
需要gmp,mpfr,mpc的压缩包。我的是gmp-5.0.0.tar.bz2,mpfr-2.4.2.tar.gz,mpc-0.8.1.tar.gz。
解压命令:
gz格式文件,如mpfr-2.4.2.tar.gz使用命令:
tar xzvf mpfr-2.4.2.tar.gz
bz2格式文件,如gcc-4.5.2.tar.bz2使用命令:
bzcat gcc-4.5.2.tar.bz2 | tar xvf –
将所有文件解压后,准备OK,开始安装啦。
3. 安装
· 注:文中的${gmp},${mpfr},${mpc},${gcc}代表了各自的自定义安装目录。
1 安装顺序:
因为编译有依赖,所以安装有顺序
a) 先安装gmp
b) 然后是mpfr
c) 接着是mpc
d) 最后是gcc
2 编译依赖:
e) 安装gmp 没有依赖项,可以指定安装目录--prefix=${gmp},也可以不指定,默认是/usr/local
f) 安装mpfr需要依赖gmp,--with-gmp=${gmp}。
g) 安装mpc需要依赖gmp和mpfr,--with-gmp=${gmp} --with-mpfr=${mpfr}
h) 安装gcc需要依赖gmp、mpfr和mpc。同上,--with-gmp=${gmp} --with-mpfr=${mpfr} –with-mpc=${mpc}
3 编译命令
· 注:文中的${gmp},${mpfr},${mpc},${gcc}代表了各自的自定义安装目录。
· 注: --prefix={xxx}是指定安装目录;不写的话,默认是 /usr/local目录。
a) 安装gmp
cd gmp-5.0.0
./configure --prefix=${gmp}
注:例如./configure --prefix=/home/test/wengf/gmp-5.0.2/bin
make
make check
make install
b) 安装mpfr
cd mpfr-2.4.2
./configure --prefix=${mpfr} --with-gmp=${gmp}
make
make check
make install
c) 安装mpc
cd mpc-0.8.1
./configure --prefix=${mpc} --with-gmp=${gmp} --with-mpfr=${mpfr}
make
make check
make install
d) 环境配置
最好在安装gcc前,先配置LD_LIBRARY_PATH,在~/.bashrc下加上gmp,mpfr,mpc的lib路径。
如
export LD_LIBRARY_PATH=/home/yiny/software/gcc-build/lib:/home/bit/software/stl5/lib:/home/yiny/software/my_usr/gmp-5.0.0/lib:/home/yiny/software/my_usr/mpc-0.8.1/lib:/home/yiny/software/my_usr/mpfr-2.4.2/lib:$LD_LIBRARY_PATH
然后使其生效 使用命令bash
e) 安装gcc
cd gcc4.5.2
./configure --prefix=${gcc} --with-gmp=${gmp} --with-mpfr=${mpfr} --with-mpc=${mpc} --enable-languages=c,c++ --enable-threads=posix --enable-shared --enable--long-long
make
make install
4. 错误处理
正常安装是不会出错的。
如果出现错误,不能安装,请按下面步骤确认。
1. 确认准备安装的版本。
2. 确认安装命令与路径。
3. 确认安装顺序。
4. 确认环境变量PATH和LD_LIBRARY_PATH, LIBRARY_PATH,特别是自定义安装目录的时候。
有时候会有LIBRARY_PATH冲突的错误,可以尝试换个安装路径或是将LIBRARY_PATH改掉。(只有安装gcc会有)
5. 确认环境变量已生效。(只有安装gcc会有)
6. 确认有gcc可以执行。(太老的gcc可能不行)
7. 全部删掉,从头安装。
8. 还没解决,就去找google吧。