目前我正在使用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
答案 0 :(得分:5)
更改设置 - 配置属性&gt;一般&gt;整个计划优化 来自&#34;使用链接时间码生成&#34;到&#34;没有整个计划优化&#34;
此更改后,我的计算机上的库大小从 76MB 降至 21MB 。
查看附件图片。希望这会帮助你。
答案 1 :(得分:4)
您应该比较您的构建设置,尤其是优化和库链接(静态/动态)。如果您不确定,请复制链接器和编译器的命令行,我们可以在这里为您检查。
命令行可以在构建日志中找到,也可以在项目Properties
/ C/C++
/ Command Line
和Properties
/ 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)
我记得在一位同事抱怨之后检查这件事。尝试使用编译器开关直到大小相同,然后检查这些开关的文档