MinGW-w64各版本—— sjlj seh dwarf 有什么區別?


 

釋義1:

  • DWARF:一種帶調試信息(DWARF- 2(DW2)EH)的包, 所以比一般的包尺寸大,僅支持32位系統
  • SJLJ:跨平台,支持32,64位系統,缺點是:運行速度稍慢,GCC不支持
  • SEH: 調用系統機制處理異常,支持32,64位系統,缺點是:Gcc不支持(即將支持)

釋義2:

  • x86_64: 簡稱X64,64位操作系統
  • i686: 32位操作系統 (i386的子集),差不多奔騰2(1997年5月)之后的CPU都是可以用的;

釋義3:

  • posix: 啟用了C++ 11 多線程特性
  • win32: 未啟用 (從時間線上正在嘗試也啟用部分 Threading)

區別

  • DWARF DWARF- 2(DW2)EH ,這需要使用DWARF-2(或DWARF-3)調試信息。 DW-2 EH可以導致可執行文件略顯膨脹,因為大的調用堆棧解開表必須包含在可執行文件中。
  • setjmp / longjmp(SJLJ)。基於SJLJ的EH比DW2 EH慢得多(在沒有異常時會懲罰甚至正常執行),但是可以在沒有使用GCC編譯的代碼或沒有調用堆棧的代碼上工作。
  • 結構化異常處理(SEH) (Structured Exception Handling)Windows使用自己的異常處理機制。

 


 

MinGW-w64下載地址:https://sourceforge.net/projects/mingw-w64

參考:https://www.pcyo.cn/linux/20181212/216.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM