当然我们都知道构建GCC版本> = 4.1.x需要补充包MPFR,GMP和MPC。
有几种方法可以处理这些GCC依赖项:
1)分别下载并构建每个支持包,然后告诉make
在GCC构建期间二进制文件所在的位置。
2)下载每个支持包,解压缩并将源移动到您的GCC构建目录中,make
将在需要时自动构建每个包。
(执行gcc-src / contrib / download_prerequisites脚本与选项2相同)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
这两种方法都有优势吗?预先编译二进制文件是否通过采用“简单路径”并将软件包的源代码转储到我的GCC构建目录并让make
解决它来提供我缺少的东西?
通过将每个包预先编译为二进制文件,然后在gcc编译期间告诉make
它们所在的位置,我已经看到它在各种构建脚本中更频繁地完成了。这是“首选”的方式吗?为什么呢?
要添加上下文,我主要构建针对各种ARM平台的交叉编译器。
答案 0 :(得分:1)
对于大多数用例,我认为选项2与选项1一样好。但是,我可以看到一些人们想要手动完成的情况。
软件包维护者想要单独构建,因为他们需要为mpfr等人提供单独的软件包。
有人想将不同的配置参数/ CFLAGS传递给每个包。
GCC开发人员希望保留其源代码并构建树,因为他们不会对MPFR / GMP等进行任何更改。
我没有对(相当难看的)GCC构建系统做太多工作,但我没有看到二进制文件的构建方式有任何明显的差异。
我不是这方面最大的权威,所以YMMV;我可能错了。