织梦CMS - 轻松建站从此开始!

罗索实验室

编译安装GCC 4.5.1

落鹤生 发布于 2012-07-23 20:52 点击:次 
GCC编译需要GMP, MPFR, MPC这三个库,这三个库可以从ftp://gcc.gnu.org/pub/gcc/infrastructure/上下载,我使用的版本为gmp-4.3.2,mpfr-2.4.2和mpc-0.8.1。
TAG:

准备工作

首先要做一些准备工作:

1.首先从GNU上下载GCC包,下载地址是http://gcc.gnu.org/,我使用的是最新发布版本4.5.1,首次编译安装时会出现这样的错误:

  1. gcc configure: error: Building GCC requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0+ 

2.从编译错误中可以看出:GCC编译需要GMP, MPFR, MPC这三个库,这三个库可以从ftp://gcc.gnu.org/pub/gcc/infrastructure/上下载,我使用的版本为gmp-4.3.2,mpfr-2.4.2和mpc-0.8.1。当然这三个包也可以直接从各自官网上下载:
http://gmplib.org/http://www.mpfr.org/http://www.multiprecision.org/

编译安装:

1.MPFR和MPC都依赖于GMP包,所以首先安装GMP

$tar xvf gmp-4.3.2.tar.bz2
$cd gmp-4.3.2
$./configure (可以使用配置参数--prefix=指定安装位置,这里使用默认/usr/local/include和/usr/local/lib)
$make
$make check (这一步用来确保编译正确)
$sudo make install

2.安装MPFR

$tar xvf mpfr-2.4.2.tar.bz2
$cd mpfr-2.4.2
$./configure --with-gmp-include=/usr/local/include --with-gmp-lib=/usr/local/lib
$make
$make check
$sudo make install

3.安装MPC 

$tar xvf mpc-0.8.1.tar.gz
$cd mpc-0.8.1
$./configure --with-gmp-include=/usr/local/include --with-gmp-lib=/usr/local/lib
$make
$make check
$sudo make install

至此,三个库安装完毕,都是安装在默认位置/usr/local/include和/usr/local/lib,为了防止GCC编译时找不到这三个库,需要确认库位置是否在环境变量LD_LIBRARY_PATH中,查看环境变量内容可以用命令 

$echo $LD_LIBRARY_PATH

如果该环境变量中不包含/usr/local/lib库的位置,需要添加库位置,命令如下 

$export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/lib"

4.安装GCC

$tar xvf gcc-4.5.1.tar.gz  $cd gcc-4.5.1  $./configure  $make  $make check  $sudo make install

经过两三个小时的漫长等待,你可以体验GCC 4.5.1带来的快感了……
使用命令$gcc -v查看版本,你会看到

Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/i686-pc-linux-gnu/4.5.1/lto-wrapper
Target: i686-pc-linux-gnu
Configured with: ./configure
Thread model: posix
gcc version 4.5.1 (GCC)

最 后再罗嗦几句,主要说明两点configure和make check,configure的配置参数是相当的多,以至于我从来就没有认真的看过,配置项说明一般在安装文件里的README或者INSTALL文件 里,最常用的应该就是–prefix=指定安装路径的配置项了,像上面的安装过程中,如果configure gmp时使用了–prefix=/usr/local/gmp-4.3.2,那么下面用到gmp的配置就变成了–with-gmp=/usr/local /gmp-4.3.2,当然环境变量也要做相应的变化。make check的功能是检测编译是否正确,减少不必要的麻烦,编译成功的话,会看到这样的信息
====================
All 132 tests passed
====================
make[2]: Leaving directory ***************
make[1]: Leaving directory ***************
make[1]: Entering directory ***************
make[1]: Nothing to be done for `check-am’.
make[1]: Leaving directory ***************

***************表示测试的路径和当前的路径,主要看上面的信息All *** tests passed,说明没有错误,全部通过了 。

(yygcui)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www1.rosoo.net/a/201207/16174.html]
本文出处:yygcui 作者:yygcui 原文
顶一下
(0)
0%
踩一下
(1)
100%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容