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