在centOS7.2上编译gcc4.1.2
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
编译很可能会出现这个错误:
将蓝色部分替换成红色的内容,即可成功编译!
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的更多相关文章
- 在centOS7.2上编译gcc4.4.7
1.前置 首先,可以参考我的上篇文章,在centOS7.2上编译gcc4.1.2,过程基本一致,这里只对可能遇到的错误情况进行说明. 2.安装texinfo4.8 我的centos7.2版本,自带的是 ...
- 尝试在CentOS7.2上编译安装Swift
苹果提供 Ubuntu上构建Swift 的教程,通过这个教程我尝试使用CentOS7.2上玩儿一把.目前已经成功在CentOS7.2上班成功安装 swift 4.0 https://github.co ...
- 最小化安装的centos7.5上编译安装git2.19
VMware Workstation已经采用最小化安装CentOS7,显示版本为CentOS7.5,准备采用yum安装git. 采用yum list git发现可安装的GIT软件包版本1.8.3.1, ...
- centos7.3上编译安装percona5.7.18
一,删除操作系统自带mariadb yum remove mariadb 二,下载需要的安装包 percona-toolkit-3.0.3-1.el7.x86_64.rpm boost_1_59_0. ...
- 转载:Centos7 从零编译Nginx+PHP+MySql 二
序言 这次玩次狠得.除了编译器使用yum安装,其他全部手动编译.哼~ 看似就Nginx.PHP.MySql三个东东,但是它们太尼玛依赖别人了. 没办法,想用它们就得老老实实给它们提供想要的东西. 首先 ...
- 转载:Centos7 从零编译Nginx+PHP+MySql 序言 一
这次玩次狠得.除了编译器使用yum安装,其他全部手动编译.哼~ 看似就Nginx.PHP.MySql三个东东,但是它们太尼玛依赖别人了. 没办法,想用它们就得老老实实给它们提供想要的东西. 首先的一些 ...
- [原创]Centos7 从零编译Nginx+PHP+MySql
序言 这次玩次狠得.除了编译器使用yum安装,其他全部手动编译.哼~ 看似就Nginx.PHP.MySql三个东东,但是它们太尼玛依赖别人了. 没办法,想用它们就得老老实实给它们提供想要的东西. 首先 ...
- centos7.2下编译安装&&使用-git代码库
centos7.2下编译安装git Git简介 Git是一个分布式版本控制系统 Git vs SVN SVN是典型的集中式版本控制起,版本库集中存放在服务器,当我们用自己的电脑干活儿的时候,需要先从中 ...
- 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 ...
随机推荐
- C++如何限制对象在堆上或栈上生成
1,限制类的对象只能生成在栈上 将 operator new 各种原型设为私有 #include <iostream> class OnlyOnStack { public: OnlyOn ...
- cinder-----常用命令
云硬盘的创建查询 #创建卷类型 cinder type-create rbd #rbd是云硬盘类型名称,可自行定义 #查询卷类型 cinder type-list #卷类型扩展规格 cinder ty ...
- [SPSS]学习笔记--数据分布形状描述
以下内容摘自:公众号- SPSS生活统计学 保存做复习之用. 峰度(Kurtosis) 峰度是描述总体(样本)中所有取值分布形态陡缓程度的统计量.通过计算可以得到峰度系数,峰度系数与分布形态的关系是: ...
- 2018.04.02 matplotlib 图名,图例,轴标签,轴边界,轴刻度,轴刻度标签
import numpy as np import pandas as pd import matplotlib.pyplot as plt df = pd.DataFrame(np.random.r ...
- MySQL 常用工具sysbench/fio/tpcc等测试
为什么要压力测试采购新设备,评估新设备性能开发新项目,评估数据库容量新系统上线前,预估/模拟数据库负载更换数据库版本,评估性能变化 关注指标 CPU %wait,%user,%sys 内存 只内存读 ...
- 【C++学习笔记】static 关键字
(阅读<C++ primer plus>可知 C++的static关键字跟Java还是很类似的) 为什么需要static关键字:在文件A中定义的非局部变量language,在文件B中可以通 ...
- java:(九大内置对象,计算服务器访问次数,filter过滤器,MVC框架,MVC和三层架构的关系)
1.九大内置对象: <%@ page language="java" import="java.util.*" pageEncoding="UT ...
- Synchronized知道这些就可以了
Synchronized关键字算是Java的元老级锁了,一开始它撑起了Java的同步任务,其用法简单粗暴容易上手.但是有些与它相关的知识点还是需要我们开发者去深入掌握的.比如,我们都知道通过Synch ...
- #Java学习之路——基础阶段二(第十一篇)
我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...
- 完全分布式部署Hadoop
完全分布式部署 Hadoop 分析: 1)准备 3 台客户机(关闭防火墙.静态 ip.主机名称) 2)安装 jdk 3)配置环境变量 4)安装 hadoop 5)配置环境变量 6)安装 ssh 7)配 ...