[英]How to compile C program without any optimization
如何在不使用gcc / g ++進行任何優化的情況下編譯C程序?
使用-O0是我所知道的最接近的,但是,與其他回復不同,這並不意味着零優化。 您可以計算不同gcc優化級別的啟用優化次數,如下所示(這是gcc 4.8.2):
$ gcc -Q -O0 --help=optimizers | grep enabled | wc -l
52
$ gcc -Q -O1 --help=optimizers | grep enabled | wc -l
80
$ gcc -Q -O2 --help=optimizers | grep enabled | wc -l
110
$ gcc -Q -O3 --help=optimizers | grep enabled | wc -l
119
所以在-O0,啟用了52個優化。 我想一個人可以逐個禁用它們,但我從未見過這樣做。
請注意,gcc手冊頁說:
-O0 Reduce compilation time and make debugging produce the expected results. This is the default.
它並不承諾零優化。
我不是一個gcc開發人員,但我猜他們會說-O0優化已經變得如此標准,以至於它們幾乎不再被稱為優化,而是“標准”。 如果這是真的,那有點令人困惑,因為gcc仍然在優化器列表中有它們。 我也不太了解歷史:或許對於先前版本-O0確實意味着零優化......
gcc main.c
要么
g++ main.cpp
默認情況下,它不會進行任何優化。 只有在指定-O1, -O2, -O3, etc...
才會進行優化。
或者您可以使用-O0
開關使其顯式。
除非通過-O
標志請求它們,否則不應進行任何優化。 如果您需要撤消構建系統提供的某些默認值, -O0
將為您執行此操作,只要它是命令行中的最后一個-O
標志即可。
使用gcc,傳入標志:-O 0。
使用編譯器開關-O0 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.