在gcc-4.8.2和gcc-4.1.2基础上编译gcc-5.2.0,有可能会遇到一些问题。

要想成功编译gcc,则在编译之前需要安装好它的至少以下三个依赖:
gmp
mpfr
mpc

而mpc又依赖gmp和mpfr。

1) 安装gmp
./configure --prefix=/usr/local/gmp-6.0.0
make
make install

2) 安装mpfr
./configure --prefix=/usr/local/mpfr-3.1.3
make
make install

3) 安装mpc
./configure --prefix=/usr/local/mpc-1.0.3 --with-gmp=/usr/local/gmp-6.0.0 --with-mpfr=/usr/local/mpfr-3.1.3
make
make install

为了成功的编译gcc,建议设置环境变量:
export LD_LIBRARY_PATH=/usr/local/mpc-1.0.3/lib:/usr/local/gmp-6.0.0/lib:/usr/local/mpfr-3.1.3/lib:$LD_LIBRARY_PATH

4) 安装gcc-5.2.0
./configure --prefix=/data/gcc-5.2.0 --with-mpfr=/usr/local/mpfr-3.1.3 --with-gmp=/usr/local/gmp-6.0.0 --with-mpc=/usr/local/mpc-1.0.3
make
make install

4) 安装gcc-4.8.2
./configure --prefix=/data/gcc-4.8.2 --with-mpfr=/usr/local/mpfr-3.1.3 --with-gmp=/usr/local/gmp-6.0.0 --with-mpc=/usr/local/mpc-1.0.3
make
make install

常见错误:
错误1)
configure: error: C compiler cannot create executables
请尝试设置下LD_LIBRARY_PATH后,再执行configure,再make:
export LD_LIBRARY_PATH=/usr/local/mpc-1.0.3/lib:/usr/local/gmp-6.0.0/lib:/usr/local/mpfr-3.1.3/lib:$LD_LIBRARY_PATH

错误2)
../.././libgcc/config/t-softfp:106: 在“else”指令之后含有不该出现的文字
../.././libgcc/config/t-softfp:113: *** 每个条件只能有一个“else”。 停止。

首先通过find命令找到t-softfp(注意是config目录下的t-softfp):
find . -name "t-softfp"

然后进入t-softfp的第106行:
vi ./libgcc/config/t-softfp

98 ifeq ($(enable_shared),yes)
 99     $(call softfp_set_symver,__$(*F))
100     if grep strong_alias $(srcdir)/soft-fp/$@ > /dev/null; then \
101       alias=`grep strong_alias $(srcdir)/soft-fp/$@ | sed -e 's/.*, *//' -e 's/).*//'`; \
102       $(call softfp_set_symver,$$alias); \
103     fi
104 endif
105     echo '#endif' >> $@
106 else ifneq ($(softfp_wrap_start),)
107 softfp_file_list := $(addsuffix .c,$(softfp_func_list))
108 
109 $(softfp_file_list):
110     echo $(softfp_wrap_start) > $@
111     echo '#include "soft-fp/$@"' >> $@
112     echo $(softfp_wrap_end) >> $@
113 else
114 softfp_file_list := \
115   $(addsuffix .c,$(addprefix $(srcdir)/soft-fp/,$(softfp_func_list)))
116 endif

将文件t-softfp的第106行变成两行:
else
    ifneq ($(softfp_wrap_start),)

错误3)
../.././libgcc/config/t-softfp:144: *** 遗漏“endif”。 停止。

第144行已是文件t-softfp的最后一行:
139 LIB2FUNCS_EXCLUDE += \
140   $(addprefix _,$(foreach m,$(softfp_float_modes), \
141                             $(foreach i,si di, \
142                                         $(softfp_floatint_funcs))))
143 endif

按照出错提示增加第144行:
143 endif
144 endif

错误4)使用gcc-4.1.2编译gcc-5.2.0时,遇到如下错误:
checking for suffix of object files... configure: error: in `/data/gcc-5.2.0/x86_64-unknown-linux-gnu/libgcc':
configure: error: cannot compute suffix of object files: cannot compile
See `config.log' for more details.
依据错误提示,在config.log中找到如下一些信息:
“when loading shared libraries:libmpc.so.3:cannot open shared object file: No such file or directory”.
解决办法:
export LD_LIBRARY_PATH=/usr/local/mpc/lib:/usr/local/gmp/lib:/usr/local/mpfr/lib:$LD_LIBRARY_PATH

安装gcc及其依赖的更多相关文章

  1. rpm方式安装gcc缺少依赖项的解决方法

    使用rpm方式安装gcc时,有时会报缺少依赖项: libmpfr.so.1 is needed by cpp-4.4.4-13.el6.i686 libppl.so.7 is needed by cl ...

  2. CentOS离线安装GCC编译环境

    gcc编译环境rpm下载 安装相关的rpm包,具体版本可能随时间变化而变化,可以去以下地址下载: 重庆大学镜像:http://b.mirrors.lanunion.org/CentOS/中国科学技术大 ...

  3. CentOS 安装 gcc

    centos linux默认可以采用yum方式安装,则采用如下命令安装gcc编译器即可:#yum -y install gcc 系统会自动安装gcc及依赖组件 gcc                 ...

  4. Linux 安装GCC讲解(在线和无网离线)

    本文主要介绍如何在无网络的环境下怎么离线安装GCC,如果有网,只需要通过命令 yum install gcc 进行安装就可以了,yum会自动把所有关联的依赖包也一起安装了,一键安装. yum inst ...

  5. 转:在CentOS下编译安装GCC

    转:https://teddysun.com/432.html 在CentOS下编译安装GCC 技术  秋水逸冰  发布于: 2015-09-02  更新于: 2015-09-02  6519 次围观 ...

  6. ubuntu安装gcc不同的版本

    服务器ubuntu14.04安装ns3.29中,显示gcc版本过低 使用apt-get安装失败,ubuntu14.04默认安装gcc4.8.4,无法下载更高级的gcc版本 先找到资料1,脚本尝试了,下 ...

  7. RedHat安装GCC问题-解决依赖问题

    RedHat Linux在安装gcc时需要cpp和cloog-ppl但是在安装cpp的时候需要这个依赖:libmpfr.so.1()(64bit) is needed by cpp-4.4.6-3.e ...

  8. redhad安装gcc问题---解决依赖问题

    在安装gcc时需要cpp和cloog-ppl 但是在安装cpp的时候需要这个依赖:  libmpfr.so.1()(64bit) is needed by cpp-4.4.6-3.el6.x86_64 ...

  9. Linux安装gcc时碰到的有关问题解决(解决gcc依赖有关问题)

    Linux安装gcc时碰到的有关问题解决(解决gcc依赖有关问题) rpm安装gcc时碰到的有关问题解决(解决gcc依赖有关问题) 提示:error: Failed dependencies: clo ...

随机推荐

  1. Jquery中的has、find、filter方法区别

    find方法 find返回的是匹配结果集,作用于后代$(‘li’).find(‘.a’).css(‘background-color’, ‘red’);在li下面查找元素是否有class=a的元素,返 ...

  2. C# 转义字符 '\'反斜杠

    在代码中经常用到表示路径的字符串,如何正确转换反斜杠? 如要将"C:\123"转换成"C:\\123" 如何转换? 方法: string str="C ...

  3. 教你使用markdown画程序流程图

    2016-01-21 10:33:15 星期四 1. 入门案例 st=>start: Start op=>operation: Your Operation sub=>subrout ...

  4. Regenerate Script 重置脚本

    1.Regenerate Script 重置回录制后的第一次脚本,当修改设定后点击这个按钮,新的设置也会录制到 如:开始没有录到下载的文件,添加下载文件的个时候,再次点击重置,就录制到了 如:如开始是 ...

  5. C++ 函数特性_函数重载

    函数重载 在相同作用域内 用同一函数名定义的多个函数: 参数个数和参数类型不同 int getMax(int x,int y,int z) // 函数名相同都是 getMax() { // to do ...

  6. charles2 重写

    重写 重写功能可以重写对应的内容,主要对某些匹配请求的header.host.URL.path.query param.body.response等参数删除.修改.增加. 和断点相比,适合做长期和批量 ...

  7. CSS控制文字只显示一行 超出部分显示省略号

         <p style="width: 120px; height: 50px; border: 1px solid blue; white-space: nowrap; over ...

  8. Basic64 编码解码

    import sun.misc.BASE64Decoder; public class Base64 { /** * 字符串转Base64编码 * @param s * @return */ publ ...

  9. 10个免费的在线Markdown编辑器

    1. StackEdit StackEdit是一个很用特色的免费在线Markdown编辑器. 有一个非常不错的工具栏,可与云存储同步,以URL形式导入文件或者直接从硬盘打入.他还有一个亮点就是,可以减 ...

  10. 克拉 & 24K

    [克拉] 克拉(Ct)是宝石的质量(重量)单位,现定1克拉等于0.2克或200毫克.一克拉又分为100分,如50分即0.5克拉,以用作计算较为细小的宝石.因为宝石的密度基本上相同,因此越重的宝石体积越 ...