![](/img/trans.png)
[英]How to check if an executable or DLL is build in Release or Debug mode (C++)
[英]c++ build with release mode with library in debug mode
我想知道是否在發布模式下構建項目並將鏈接在調試模式下構建的庫鏈接到該庫,庫是否會優化?
否。如果您的庫是在調試模式下編譯的,則代碼未經過優化。 如果將此庫鏈接到發行庫,則該庫仍將處於未優化狀態(鏈接器無法重新編譯該庫!)請記住,一旦編譯了庫,二進制文件便已修復,並且不會再更改。
如果您使用的是Windows,則調試庫還將與調試運行時鏈接,而發布庫將與發布運行時鏈接,由於符號沖突,使其根本無法工作。
如果該庫是在調試模式下構建的,則將不會對其進行優化!
庫代碼已經在編譯時完成了,所以不,它不會具有優化的代碼。
調試/發布代碼優化在編譯時完成。 由於該庫已經編譯過,因此不會,它不會進行“發行”優化。
附帶說明一下,發布優化通常取決於開發人員(他需要將其詳細功能和其他輔助功能放在#ifdef DEBUG預處理程序開關下)。
因此,該庫可能已經非常優化(取決於庫的實現),只是啟用了調試符號。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.