2012-01-24 41 views
2

似乎總是會生成-O2,除非我在buildflags中指定「優化速度」(導致-O3)或「優化大小」(導致-Os)。如果我在構建標記中沒有指定任何內容,但將「-O0」傳遞到構建選項,則結果爲「-O2 -O0」。然而,預期的結果只是「-O0」。在premake 3.7中,如何爲gcc生成-O0而不是-O2?

當我將「-O0」作爲自定義構建選項傳遞時,如何防止生成「-O2」?該文件沒有提及任何相關內容。

回答

0

可能有一種方法可以關閉-02,但它不是必需的。

從GCC手冊頁:

如果使用多個-O選項,有或無級數字,最後一個這樣的 選項是一個是有效的。

+0

哦謝謝,我似乎錯過了那部分。 – pholz

0

嘗試在Debug配置而不是Release中構建它?

+0

嗯,問題是,-O2似乎會導致發佈版本崩潰,而-O0版本不會,而且暫時無崩潰版本構建很重要,即使它不是優化。無論如何,你說Premake不允許任何比-O2更低的發佈版本? – pholz

+0

對不起,我不知道。 –

+0

@pholz,我知道這是舊的,但只是爲了說明一點:如果你的程序崩潰與編譯器選項'-O2',而不是'-O0',那麼這可能意味着你的代碼有問題,這恰好適用於這種情況。在另一個平臺或計算機上或使用不同的數據可能會有所不同。 (我必須學習這個難題。) – cassava