1.下载安装gcc4.1.2安装包

 wget ftp://ftp.gnu.org/gnu/gcc/gcc-4.1.2/gcc-4.1.2.tar.bz2

注:其他版本的安装包可以在上级目录寻找到。

2.执行以下命令,查看是否安装“makeinfo”

makeinfo --version

已安装,则记录版本号,然后执行“步骤 3”。

未安装,则执行 yum install texinfo 命令,安装“makeinfo”。

3.执行以下命令,解压缩“gcc-4.1.2.tar.bz2”

tar -xvf gcc-4.1.2.tar.bz2

4.执行以下命令,进入“gcc-4.1.2”目录

cd gcc-4.1.2

5.使用 vi 编辑器,修改“configure”文件。如果您的“makeinfo”的版本

在“4.2-4.9”之间,则跳过此步骤。对于高于4.x的设置也无需设置。

# For an installed makeinfo, we require it to be from texinfo 4.2 or

# higher, else we use the “missing” dummy.

if ${MAKEINFO} –version \ | egrep 'texinfo[^0-9]*([1-3][0-9]|4\.[2-9]|[5-9])' >/dev/null 2>&1;

“makeinfo”的版本为“4.13”,则将粗体部分修改为以下内容:

'texinfo[^0-9]*([1-3][0-9]|4\.[4-9]|4\.[1-9][0-9]*|[5-9])'

“makeinfo”为其他版本,则将粗体部分修改为以下内容:

'texinfo[^0-9]*([1-3][0-9]|4\.[2-9]|4\.[1-9][0-9]*|[5-9])'

小窍门:您可以在 vi 里使用 /texinfo[^0-9] 快速定位上面两行。

6.执行以下命令编译 gcc 4.1.2

./configure --prefix=/usr/local/gcc-4.1.2&& make  

注:为了避免编译时间过长可以添加这这项,只编译c,C++

./configure  --prefix=/usr/local/gcc-4.4.7 --enable-languages=c,c++ && make -j4

编译很可能会出现这个错误:

  1. 将蓝色部分替换成红色的内容,即可成功编译!
    It has a compiling error when you build gcc4.1.2:
    ../gcc/config/i386/linux-unwind.h:138:17: error: field 'info' has incomplete type "
    And here is the solution: http://forge.ispras.ru/issues/4295
    It means that you need to change the code on line 136 in linux-unwind.h:
    struct rt_sigframe {
        int sig;
        struct siginfo *pinfo;
        void *puc;
        struct siginfo info;
    } *rt_ = context->cfa;
    to
    struct rt_sigframe {
        int sig;
        siginfo_t *pinfo;
        void *puc;
        siginfo_t info;
        struct ucontext uc;
    } *rt_ = context->cfa;
    You can download the modified file in http://files.cnblogs.com/yaoyansi/gcc412_build.zip.

7.执行以下命令安装 gcc 4.1.2

sudo make install

安装gcc 4.1.2时,编译报错:

/usr/include/gnu/stubs.h:7:27: 错误:gnu/stubs-32.h:没有那个文件或目录

可能原因是glibc-devel没有安装。

执行yum install glibc-devel.i686

8.执行以下命令,进入“/usr/bin”目录

cd /usr/bin

9.依次执行以下命令,重命名原有的 gcc 链接文件以作为备份

mv gcc gcc.bak

mv g++ g++.bak

10.依次执行以下命令,建立 gcc 4.1.2 的链接

ln -s /usr/local/gcc-4.1.2/bin/gcc /usr/bin/gcc  (Ln)

ln -s /usr/local/gcc-4.1.2/bin/g++ /usr/bin/g++

11.执行以下命令,查看 gcc 版本。

gcc  --version

你会查看到gcc版本已经变为4.1.2

在centOS7.2上编译gcc4.1.2的更多相关文章

  1. 在centOS7.2上编译gcc4.4.7

    1.前置 首先,可以参考我的上篇文章,在centOS7.2上编译gcc4.1.2,过程基本一致,这里只对可能遇到的错误情况进行说明. 2.安装texinfo4.8 我的centos7.2版本,自带的是 ...

  2. 尝试在CentOS7.2上编译安装Swift

    苹果提供 Ubuntu上构建Swift 的教程,通过这个教程我尝试使用CentOS7.2上玩儿一把.目前已经成功在CentOS7.2上班成功安装 swift 4.0 https://github.co ...

  3. 最小化安装的centos7.5上编译安装git2.19

    VMware Workstation已经采用最小化安装CentOS7,显示版本为CentOS7.5,准备采用yum安装git. 采用yum list git发现可安装的GIT软件包版本1.8.3.1, ...

  4. centos7.3上编译安装percona5.7.18

    一,删除操作系统自带mariadb yum remove mariadb 二,下载需要的安装包 percona-toolkit-3.0.3-1.el7.x86_64.rpm boost_1_59_0. ...

  5. 转载:Centos7 从零编译Nginx+PHP+MySql 二

    序言 这次玩次狠得.除了编译器使用yum安装,其他全部手动编译.哼~ 看似就Nginx.PHP.MySql三个东东,但是它们太尼玛依赖别人了. 没办法,想用它们就得老老实实给它们提供想要的东西. 首先 ...

  6. 转载:Centos7 从零编译Nginx+PHP+MySql 序言 一

    这次玩次狠得.除了编译器使用yum安装,其他全部手动编译.哼~ 看似就Nginx.PHP.MySql三个东东,但是它们太尼玛依赖别人了. 没办法,想用它们就得老老实实给它们提供想要的东西. 首先的一些 ...

  7. [原创]Centos7 从零编译Nginx+PHP+MySql

    序言 这次玩次狠得.除了编译器使用yum安装,其他全部手动编译.哼~ 看似就Nginx.PHP.MySql三个东东,但是它们太尼玛依赖别人了. 没办法,想用它们就得老老实实给它们提供想要的东西. 首先 ...

  8. centos7.2下编译安装&&使用-git代码库

    centos7.2下编译安装git Git简介 Git是一个分布式版本控制系统 Git vs SVN SVN是典型的集中式版本控制起,版本库集中存放在服务器,当我们用自己的电脑干活儿的时候,需要先从中 ...

  9. linux(debian) arm-linux-g++ v4.5.1交叉编译 embedded arm 版本的QtWebkit (browser) 使用qt 4.8.6 版本 以及x64上编译qt

    最近需要做一个项目 在arm 架构的linux下 没有桌面环境的情况下拉起 有界面的浏览器使用. 考虑用qt 的界面和 qtwebikt 的库去实现这一系列操作. 本文参考: Qt移植到ARM Lin ...

随机推荐

  1. spark 笔记 12: Executor,task最后的归宿

    spark的Executor是执行task的容器.和java的executor概念类似. ===================start executor runs task============ ...

  2. ftp反向代理配置

    说明:源ftp在内网,访问在另一个内网,要求用户对真实ftp地址透明,且免密访问. 1.将ftp配置为被动模式,指定被动访问端口映射出来. // vsftp配置被动模式,列出主要配置 connect_ ...

  3. 描述一下 Intent 和 IntentFilter?

    Android 中通过 Intent 对象来表示一条消息,一个 Intent 对象不仅包含有这个消息的目的地,还可以包含消息的内容,这好比一封 Email,其中不仅应该包含收件地址,还可以包含具体的内 ...

  4. Python基本语法_函数属性 & 参数类型 & 偏函数的应用

    目录 目录 前言 软件环境 Python Module的程序入口 函数的属性 Python函数的创建 函数的参数 必备参数 缺省参数 命名参数 不定长参数 匿名参数 偏函数的应用 前言 Python除 ...

  5. docker rm & docker rmi & docker prune 的差异

    docker rm & docker rmi & docker prune 的差异 docker rm : 删除一个或多个 容器 docker rmi :  删除一个或多个 镜像 do ...

  6. asp.net mvc model attribute and razor and form and jquery validate 完美结合

    1.创建Model,添加标注. [Serializable] public class BaseUserModel:BaseModel { [StringLength(100)] [Required( ...

  7. java:LeakFilling(Servlet,JSP)

    1.web-inf中的  .jsp 文件不会运行,其他都根据web.xml文档中的自然顺序进行运行 2.keep-alive 长连接(持续)  UDP,TCP短连接 3.状态码:1(消息异常) 2(成 ...

  8. Linux字符界面字符颜色显示

    一.字符颜色 #!/bin/bash #字符颜色显示 #-e:允许echo使用转义 #\033[:开始位 #\033[0m:结束位 #\033等同于\e echo -e "\033[30m黑 ...

  9. Series的idxmax和argmax

    转载至:https://www.cnblogs.com/liulangmao/p/9211537.html pandas Series 的 argmax 方法和 idxmax 方法用于获取 Serie ...

  10. 【神经网络与深度学习】caffe静态链接库“Unknown layer type: Convolution (known types: )”和“ 磁盘空间不足”问题的解决办法

    这一段时间把caffe在windows环境下编译了一下,tool里面的cpp全部编译成了exe.再用的时候有两个问题让我头疼了好长时间! 第一个问题 "db_lmdb.hpp:14] Che ...