簡體   English   中英

gcc /優化標記gcc / C的持久性更改

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM