[英]Changes in gcc/persistence of optimization flags gcc/C
只是好奇。 在Ubuntu 9.10下使用gcc / gdb。
读一本C书也常常会反汇编目标文件。 一月份阅读时,我的拆卸看起来很像这本书。 现在,它已经完全不同了-可能已经进行了优化(我注意到汇编代码中的一些重新安排,至少在我检查的文件中,看起来是优化的)。 我在第一次和第二次读取之间使用了优化选项-O1--O3作为gcc,但没有在第一次读取之前。
(1)优化选项的使用是否持久化(如果您一次使用它们,直到关闭它们之前都将使用它们)? 那会很奇怪(浏览过的man文件,至少看不到那种东西)。 在不太可能的情况下,您该如何关闭它们?
(2)gcc的程序集是否通过最近的升级进行了更改?
(3)尽管选择了相同的编译选项,gcc有时还是会产生(大量)不同的汇编代码吗?
非常感谢。
1)不,选项不会持续存在。
2)是的,优化器一直在不断变化和改进。 如果您的gcc软件包已升级,则为特定源文件生成的程序集很可能会更改。
3)使用gcc进行编译是确定性的过程; 如果使用相同版本的gcc和相同的目标使用相同的选项编译相同的源,则生成的程序集应该相同(以一些符号名称为模)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.