目前,我正在使用Visual Studio 2010(使用C++)编译DLMS库(http://www.gurux.fi/index.php?q=DLMSCOSEMFAQ)。

我已在调试和 Release模式下成功编译了库。但是,当我检查两个库的大小,然后发布一个库( .lib )时,其大小再加倍( 76 MB ),然后调试一个( 31 MB )。

我认为发布版本之一的调试版本较小,对吗?

VS2010是否需要任何设置?

在此处查找构建版本日志http://pastie.org/9687316

对于调试日志,这里http://pastie.org/9687340

最佳答案

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

命令行可以在构建日志中找到,也可以在项目Properties / C/C++ / Command LineProperties / 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。有关说明,请参见Release mode static library much larger than debug mode version

关于c++ - 在 Release模式下,库大小更大,在VS2010中为 Debug模式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26670772/

10-13 03:58