博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Gcc 安装过程中部分配置
阅读量:5270 次
发布时间:2019-06-14

本文共 1425 字,大约阅读时间需要 4 分钟。

Gcc 安装过程中部分配置详解

全文参考《have fun with Gcc》一文,如有需要请联系原作者prolj@163.com

解压gcc源码后,需要进行configure,这时候一般命令如下:

srcdir/configure [options] [target]

你可以运行以下命令获得自己需要的options。

configure –help

Target默认是自己的本机环境,如果是交叉编译器,就需要指定这个参数了

--target=target

这个target一半是你m68k-coff,mk68k-linux-elf这样的格式,其中mk68-linux-elf是用在嵌入式Linux中的格式,我曾经使用过mips-linux-bin的格式,一般是指定CPU类型,而进行的文件格式,甚至OS环境。

同时还有一些附加的options,比如:

--prefix=dir 这个是指定你安装的目录,如果需要安装多个版本的gcc时,非常有用

--with-gmp 是GNU多精度库

--with-mpfr MPFR和GMP是配合,编译GCC的时候同时需要GMP和MPFR。

--with-ppl  是启用Graphite循环优化

--with-cloog 是和上边配合的一个参数

--enable-language=c++ 用逗号隔开,可以指定编译支持的语言,不在列表的语言不支持,这样可以减少编译时间

--disable-bootstrap 如果你确定自己的代码没问题,不用编译3遍,或者是你是gcc代码的调试者,不想等待那漫长的编译时间,可以把bootstrap禁用,这样就只编译一遍。

如果需要构建交叉编译器,那么—host 和 –target可能是必须的

还有一些构建的选项

一般人使用的make选项,这是使用单线程串行编译,一般需要几个小时。这个时候为了加快编译速度可以使用

make –jN  N是系统支持的线程数

这个时候建议首先查看CPU的个数(cat /proc/cpuinfo),和CPU每个核心支持的线程数,可以加快编译。

说一点构建的事情,构建 GCC 要编译 3 遍,每一遍都构建一套完整的 GCC 二进制文件。如果已经有 binutils 就不再构建,如果没有,需要先构建 binutils ,这个需要把 binutils 的代码放在 GCC 代码的顶层目录中,并在 configure的时候指定。构建 GCC 的时候有个叫作 bootstrap 的名词,意思就是编译一遍并且编译出来二进制文件。

比较第二遍和和第三遍的二进制文件是否相同。因为第一遍用本机的编译器构建出来一个 GCC ,先叫其 GCC1 ,这个 GCC1 不知道是否正确,再用 GCC1 编译出来 GCC2,如果能编译出来 GCC2 就说明 GCC1 是可以用的,GCC2 便是我们想得到“最终版本”了,可以还要用 GCC2 再去构建GCC3 ,然后比较 GCC2 和 GCC3 是否完全一样,这是为了防止有人在编译器里面放后门。
为第三遍的二进制文件构建运行时库。

如果硬盘空间实在不足,可以使用make bootstrap-lean 来删除第一遍和第二遍不用的obj

当然,你也可是使用以下指令来增加编译次数。

make boostarp4

 

转载于:https://www.cnblogs.com/jourluohua/p/6520062.html

你可能感兴趣的文章
某神秘公司 RESTful、共用接口、前后端分离、接口约定的实践
查看>>
11th 最后的致意
查看>>
通过Jmeter完成WebTours的性能测试
查看>>
《温故而知新》JAVA基础八
查看>>
C#自定义泛型类绑定ComboBox控件
查看>>
转载 : flex3 中 Legend fontSize不起作用的bug解决
查看>>
2.1 电子计算机的兴起
查看>>
Atitit.h5 web webview性能提升解决方案-----fileStrore缓存离线存储+http方案
查看>>
Appserv(Apache) 设置网页不显示目录(索引)
查看>>
LTE L2 PDU vs SDU
查看>>
Markdown使用指南
查看>>
使用ffpython嵌入和扩展python
查看>>
搜索(DFS)
查看>>
ActiveMQ的两种消息模式,主题、队列
查看>>
随机变量的方差variance & 随机向量的协方差矩阵covariance matrix
查看>>
原创:实现atoi函数
查看>>
沃商店运营一周年凸显平台化优势
查看>>
Struts2.0第一章(struts2.0概述,使用步骤,执行流程,各配置文件介绍,Action详解)...
查看>>
模拟登陆CSDN——就是这么简单
查看>>
【Linux编程】存储映射I/O
查看>>