回覆列表
-
1 # 使用者4210292190265
-
2 # 梔子花的只若花念伊
當程式進行打包的時候只能打包release裡的程式而不是debug
另外根據字面的意思也可以看出debug含有除錯的意思
總體無大的區別
只是在程式打包的處理上有所不同
-
3 # 白色秋天影紫嶼南涼
Debug和Release的主要區別在於程式是否被最佳化。Debug不做任何最佳化,如果你看命令列,裡面應該有/Od;Release做最佳化,命令列裡是/O2/GL。/O2代表最大限度的最佳化,/GL代表把程式碼生成推遲到連結的時候做,這樣最佳化器可以看到所有的函式,有足夠的資訊做最大限度的最佳化。
兩者都可以包含除錯資訊。
對於Release,可以用/Zi來表示要求生成除錯資訊。是否包含除錯資訊和程式是否被最佳化是兩個不同的概念;它們彼此獨立。
MinGW-w64 目前不支援 XP 了,實現會用到 GetTickCount64,除非不使用 <chrono>、<thread> 和需要動態初始化的靜態區域性變數,其他 debug 模式下 GCC 生成的效能會比 MSVC 高很多,因為 MSVC 會插一堆除錯資訊+不開最佳化打死不內聯,release 模式下效能區別不大但是大專案 MSVC 連結會比 GCC 慢。
DLL 的話,GCC 預設會匯出所有函式,裸奔的感覺,不過你也可以用 .def 指定。