如何在Linux下手动编译安装gcc
如果可以通过apt来安装的话,尽量不要手工编译了,手工编译是最后的选择。用apt安装,只需要输入一条命令:
sudo apt-get install gcc
手工编译的话,gcc和其他软件包存在如下的依赖关系:
因此各个软件包的安装顺序是m4 --> gmp --> mpfr --> mpc --> gcc。编译之前,请先下载各软件包的源码压缩包。
编译
各个软件包的编译步骤大同小异,这里以m4为例。假设下载的m4文件名为m4-1.4.16.tar.gz,存放在~/gcc_depend
目录下。先进入到存放目录,解压:
cd ~/gcc_depend
tar zxvf m4-1.4.16.tar.gz
我们把m4安装到/usr/local
目录下。先创建目录,并运行配置文件,生成Makefile
sudo mkdir /usr/local/m4-1.4.16 # 创建安装目录
cd /usr/local/m4-1.4.16 # 切换到安装目录
sudo ~/gcc_depend/m4-1.4.16/configure --prefix=/usr/local/m4-1.4.16 # 通过configure脚本来生成Makefile
编译,这一步在安装目录下完成:
sudo make
sudo make install
编译完成后,检查是否有误:
sudo make check # 编译和运行测试用例
如果所有测试用例都pass了,说明编译成功。
其他软件包的编译过程大致如此,总结为如下几步:
- 1、解压源码
- 2、创建安装目录,并切换到安装目录,通过configure脚本来生成Makefile
- 3、编译
- 4、检查测试用例
注意事项
- 1、安装mpfr时,可能会提示找不到gmp,这个时候要在
--prefix=安装目录
后再加上--with-gmp=/usr/local/gmp-xxx
,其中gmp-xxx
为gmp安装目录;安装mpc时可能会有同样的问题,也要这样处理。 - 2、 每次安装完一个包,要把安装目录下的lib目录添加到环境变量
LD_LIBRARY_PATH
中。
如何在Linux下手动编译安装gcc的更多相关文章
- linux 下手动编译安装无线网卡驱动
先参照 <本地yum源安装GCC >安装好gcc hp的笔记本上安装了CentOS6.3,没有安装无线网卡驱动,安装这个驱动,在Google上找了好多资料,最后终于解决了这个问题.在这里做 ...
- Linux下nginx编译安装教程和编译参数详解
这篇文章主要介绍了Linux下nginx编译安装教程和编译参数详解,需要的朋友可以参考下 一.必要软件准备1.安装pcre 为了支持rewrite功能,我们需要安装pcre 复制代码代码如下: # y ...
- CentOS手动编译安装gcc
最近尝试了fedora.ubuntu.mint.debian.opensuse等多种linux发行版,与CentOS比较之后还是感觉之前用的CentOS比较熟悉,比较习惯.现在CentOS的最新版本为 ...
- fedora下手动编译安装vim
据说手动编译安装可以更适合自己的电脑哦- 1.首先,我门要下载源文件,下载地址:ftp://ftp.vim.org/pub/vim/unix/ 选择一个最新版本,我这里选择的是 vim-7.4.tar ...
- Linux 下Nginx编译安装
Untitled .note-content {font-family: 'Helvetica Neue', Arial, 'Hiragino Sans GB', STHeiti, 'Microsof ...
- Linux下memcache编译安装与基本使用
memcache是一套分布式的高速缓存系统,特点为key-value 存储 一.在 linux 编译安装memcache.redis等,需要 gcc,make,cmake,autoconf,libto ...
- Linux下手动编译shogun
手动编译shogun,如果按照直接按照官网上的步骤进行,会踩非常多的坑,下面分享一下在下的编译过程,希望能为阁下提供些许借鉴. 1. git clone https://github.com/shog ...
- 如何在linux平台上编译安装zlib软件(公司部分线上机器缺少zlib不能安装supervisor)
文章在Centos 6.5 linux平台上演示一下如何进行编译安装zlib软件,并配置相关的选项加载使用.示范从下载到安装并配置进行使用过程一系列整套讲解,希望可以给网友考虑使用,谢谢. 工具 ...
- C++ Boost在Windows和Linux下的编译安装
再debian下直接apt-get install gcc g++就可以了.按照类似的逻辑,再Fedora下yum install gcc g++ 报告无法找到g++包. 差了一下,原来这个包的名字叫 ...
随机推荐
- Activiti创建表(三)
创建Mysql 创建 mysql 数据库 activiti(名字任意):CREATE DATABASE activiti DEFAULT CHARACTER SET utf8; pom.xml < ...
- js中获取当前系统时间
使用var myDate = new Date();//获取系统当前时间 获取特定格式的时间: 1 myDate.getYear(); //获取当前年份(2位) 2 myDate.getFullYea ...
- 大数据笔记(二)——Apache Hadoop的体系结构
一.分布式存储 NameNode(名称节点) 1.维护HDFS文件系统,是HDFS的主节点. 2.接收客户端的请求:上传.下载文件.创建目录等. 3.记录客户端操作的日志(edits文件),保存了HD ...
- C++模板声明与实现分开--由此想到的编译,链接原理
参考了以下两篇文章: C++编译链接原理简介 语言程序编译过程 2 问题来源:当模板文件的实现与声明分开在不同文件中时,链接时会提示找不到相应模板函数,如下 一,编译和链接的大概原理: 1,编译,遍 ...
- 【洛谷P2239 螺旋矩阵】
题目链接 直接看题 一看就很数学 我们不妨来画图 画出几个矩阵,找他们的关系 然后发现 当i==1时,对应的值就是j所对应的值: 当i==n时,所对应的值就是3*n-2-j+1: 当j==1时,所对应 ...
- Guarded Suspension Pattern【其他模式】
Guarded Suspension Pattern public class GuardedSuspension { /** * Guarded Suspension Pattern[保护悬挂模式] ...
- 职位-CFO:CFO
ylbtech-职位-CFO:CFO 首席财务官——CFO(Chief Finance Officer)是企业治理结构发展到一个新阶段的必然产物.没有首席财务官的治理结构不是现代意义上完善的治理结构. ...
- day57——ajax之初体验
转行学开发,代码100天——2018-05-12 今天是一个特别的日子——首先是母亲节,在此也祝福亲爱的妈妈健康长寿.其次今天是汶川大地震10周年,10年过去了,经历过苦难的人更加坚毅勇敢地面向未来! ...
- 阶段1 语言基础+高级_1-3-Java语言高级_1-常用API_1_第5节 String类_8_字符串的分割方法
使用空格分割 这个参数其实是个正则表达式 如果用英文的句号来切分就会有问题.. 没有输出任何东西 输出他的长度看下 数组的长度输出为0 注意事项:
- Rxjava2不能再发射Null了
RxJava2的最大改变就是不能再流里发射Null了,有人会问发射了就怎么了,答案是你的流会因为NPE断开. 例如下面这段代码因为文件被删了找不到返回null,这时候就不触发下面Consumer的ac ...