目前,我正在使用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 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
。有关说明,请参见Release mode static library much larger than debug mode version。
关于c++ - 在 Release模式下,库大小更大,在VS2010中为 Debug模式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26670772/