代码之家  ›  专栏  ›  技术社区  ›  gnometorule

gcc的更改/优化标志gcc/c的持久性

  •  0
  • gnometorule  · 技术社区  · 14 年前

    只是好奇而已。在Ubuntu9.10下使用gcc/gdb。

    读一本C语言的书,书中还经常给出对象文件的反汇编。在一月份阅读时,我的反汇编看起来很像书中的反汇编;现在,它完全不同了——可能更优化了(我注意到现在汇编代码中的一些重新安排,至少在我检查的文件中,看起来是优化的)。我在第一次和第二次读取之间使用了gcc的优化选项-o1--o3,但不是在第一次读取之前。

    (1)优化选项的使用是否持久,也就是说,如果使用一次,您将一直使用到关闭它们为止?那会很奇怪(浏览了男人的档案,至少没有看到任何类似的东西)。在不太可能是真的情况下,如何关闭它们?

    (2)GCC的组件是否通过最近的升级而改变?

    (3)虽然选择了相同的编译选项,但gcc有时会产生(明显)不同的汇编代码吗?

    非常感谢。

    1 回复  |  直到 14 年前
        1
  •  3
  •   caf    14 年前

    1)不,选择不会持续。

    2)是的,乐观主义者不断被改变和改进。如果gcc包已经升级,那么为特定源文件生成的程序集很可能会更改。

    3)使用gcc编译是一个确定的过程;如果使用相同版本的gcc和相同目标的相同选项编译相同的源代码,那么生成的程序集应该是相同的(将一些符号名模块化)。