[英]size of library is bigger in release mode then debug mode in VS2010
目前,我正在使用Visual Studio 2010(使用C ++)編譯DLMS庫( http://www.gurux.fi/index.php?q=DLMSCOSEMFAQ )。
我已在調試和發布模式下成功編譯了庫。 但是,當我檢查兩個庫的大小,然后發布一個庫( .lib )時,其大小再加倍( 76 MB ),然后調試一個庫( 31 MB )。
我認為發布版本之一的調試版本較小,對嗎?
VS2010是否需要任何設置?
在此處找到構建版本日志http://pastie.org/9687316
有關調試日志,請參見http://pastie.org/9687340
將設置- 配置屬性>常規>整個程序優化從“使用鏈接時間代碼生成”更改為“沒有整個程序優化”
更改之后,我的計算機上的庫大小從76MB減少到21MB 。
檢查附件圖像。 希望這可以幫助你。
您應該比較構建設置,尤其是。 優化和庫鏈接(靜態/動態)。 如果不確定,請為鏈接程序和編譯器復制命令行,我們可以在此處為您檢查。
命令行可以在構建日志中找到,也可以在項目Properties
/ C/C++
/ Command Line
和Properties
/ Linker
/ Command Line
。
對於編譯器,要查找的最重要的設置是/O
, /M
對於鏈接器,我會看起來特別是。 對於/OPT
。
您的編譯器開關為:
/c /Zi /nologo /W3 /WX- /O2 /Oi /Oy- /GL /D WIN32 /D NDEBUG /D _LIB /D _UNICODE /D UNICODE /Gm- /EHsc /MD /GS /Gy /fp:precise /Zc:wchar_t /Zc:forScope /Fo"Release\\\\" /Fd"Release\\vc100.pdb" /Gd /TP /analyze- /errorReport:prompt GuruxDLMS\\GXDateTime.cpp
導致您的庫很大的是/GL
。 有關說明,請參見發布模式靜態庫,該庫比調試模式版本大得多 。
我記得在同事抱怨之后檢查了一下。 嘗試使用編譯器開關,直到大小相同,然后查看這些開關的文檔
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.