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