1

当然,我们都知道构建 GCC 版本 >= 4.1.x 需要存在补充包 MPFR、GMP 和 MPC。

有几种方法可以处理这些 GCC 依赖项:

1)分别下载和构建每个支持包,然后make在 GCC 构建期间告诉二进制文件的位置。

2)下载每个支持包,解压缩并将源移动到您的 GCC 构建目录,并make在需要时自动构建每个包。

(执行 gcc-src/contrib/download_prerequisites 脚本与选项 2 相同)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

两种方法都有优势吗?make通过采用“简单路线”并将包的源代码转储到我的 GCC 构建目录并让其弄清楚,预编译二进制文件是否提供了我所缺少的东西?

我已经看到它在各种构建脚本中更频繁地完成,方法是将每个包预编译为二进制文件,然后make在 gcc 编译期间告诉它们它们的位置。这是“首选”的方式吗?为什么?

为了添加上下文,我主要构建针对各种 ARM 平台的交叉编译器。

4

1 回答 1

1

对于大多数用例,我相信选项 2 与选项 1 一样好。但是,我可以看到一些需要手动执行的情况。

  • 包维护者想要单独构建,因为他们想要为 mpfr 等提供单独的包。

  • 想要将不同的配置参数/CFLAGS 传递给每个包的人。

  • 一个 GCC 开发人员希望保留他们的源代码并构建小树,因为他们不对 MPFR/GMP/等进行任何更改。

我没有对(相当丑陋的)GCC 构建系统做太多的工作,但是我没有看到二进制文件的构建方式有任何明显的差异。

不过,我不是这方面的最大权威,所以 YMMV;我可能错了。

于 2014-04-24T17:47:47.950 回答