gpt4 book ai didi

gcc - 我应该用最新版本编译 GCC 吗?

转载 作者:行者123 更新时间:2023-12-05 03:22:03 25 4
gpt4 key购买 nike

我必须编译 3 个版本的 gcc,例如 91011。我的系统 gcc 是版本 8(比方说)。

问题:用gcc-v8编译gcc-v9,用gcc-编译gcc-10有什么好处吗? v9gcc-v11gcc-v10 ?

或者我没有任何优势,我可以将它们全部编译成gcc-v8

感谢您指出一些进一步研究的方向。

最佳答案

GCC 有一个“bootstrap”构建过程。因此,当您尝试仅安装 gcc-8 构建 gcc-11 时,它将使用 gcc-8 构建 gcc-11 的临时“阶段 1”版本,然后使用 gcc-11-stage1 再次编译 gcc-11。因此,无论您从什么开始,构建过程中产生的 gcc-11 版本都可以有效地自行编译。

所以重要的是 gcc-8 或之前安装的任何“系统编译器”能够构建 gcc-11 的 stage1 版本,该版本运行良好以编译 stage 2 版本。你的系统编译器是否擅长优化并不重要,gcc 的源代码是故意编写的,以使用相当少的语言特性集(至少对于阶段 1),所以你不太可能在系统上遇到麻烦编译器对语言的晦涩角落缺少或有错误的支持。从历史上看,“系统编译器”通常根本不是 gcc,而是计算机供应商或无关第三方提供的一些编译器,因此人们不能太依赖它的质量; gcc 的设计考虑到了这一点。

从理论上讲,您的系统编译器可能存在错误编译 gcc-11-stage1 的错误,使其看起来可以正常工作,但它本身会错误编译 stage2。这不太可能,而且它以不明显的方式发生的可能性更小(例如,stage2 编译器只是段错误)。如果担心,可以选择让 stage2 构建一个 stage3 编译器,然后检查两个版本是否相同。因此,只要构建完成,您就可以确信最终安装的编译器没有问题,并且不受原始系统编译器中的错误影响。 (总而言之,此处必须引用 Ken Thompson 的“Reflections on Trusting Trust”。)

因此在实践中,您无需担心用于构建新版本的 gcc 版本。无论您碰巧已经安装了什么,在合理的范围内,都可以。

关于gcc - 我应该用最新版本编译 GCC 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72830901/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com