在VS2010中,库的大小在释放模式和调试模式下更大

时间:2014-10-31 08:59:45

标签: c++ visual-studio-2010 compilation

目前我正在使用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

3 个答案:

答案 0 :(得分:5)

更改设置 - 配置属性&gt;一般&gt;整个计划优化 来自&#34;使用链接时间码生成&#34;到&#34;没有整个计划优化&#34;

此更改后,我的计算机上的库大小从 76MB 降至 21MB

查看附件图片。希望这会帮助你。

Whole Program Optimization Project Setting

答案 1 :(得分:4)

您应该比较您的构建设置,尤其是优化和库链接(静态/动态)。如果您不确定,请复制链接器和编译器的命令行,我们可以在这里为您检查。

命令行可以在构建日志中找到,也可以在项目Properties / C/C++ / Command LineProperties / Linker / {{1 }}

对于编译器,要查找的最重要设置是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。有关说明,请参阅Release mode static library much larger than debug mode version

答案 2 :(得分:0)

我记得在一位同事抱怨之后检查这件事。尝试使用编译器开关直到大小相同,然后检查这些开关的文档