Visual Studio-編譯優化問題
July 6, 2020 9:58 PM
編譯優化問題
編譯優化問題
如果發生錯誤,多數是優化時的命名返回值優化產生的問題,這樣的優化會導致程序在優化與未優化之間的不同行為
下面是vs的優化選項說明:
/O 選項控制有助於創建具有最高速度或最小大小的代碼的各種優化。
/O1 為獲得最小大小而優化代碼。
/O2 為獲得最高速度而優化代碼。
/Ob 控制內聯函數展開。
/Od 禁用優化,從而加快編譯並簡化調試。
/Og 啟用全局優化。
/Oi 為適當的函數調用生成內部函數。
/Os 通知編譯器優選大小優化而非速度優化。
/Ot(默認設置)通知編譯器優選速度優化而非大小優化。
/Ox 選擇完全優化。
/Oy 取消在調用堆棧上創建框架指針,以更快地進行函數調用。
可以將多個 /O 選項組合到一個選項語句。 例如,/Odi 與 /Od /Oi 是相同的
————————————————
版權聲明:本文為CSDN博主「道格拉斯范朋克」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/xinqingwuji/java/article/details/79557712
一次/O2 崩潰
O2導致程序崩潰
函數定義類型說明少了STDAPICALLTYPE,即Windows的CALLTYPE(_stdcall),少了這個導致堆棧錯誤,程序崩潰.