我构建了wxWidgets的最新版本并获得了巨大的库大小,例如与2.8.12版本相比:
MinGW (UNICODE = 1 SHARED = 0 MONOLITHIC = 0 BUILD = release)
ver. 2.9.1 libwxmsw29u_core.a 16 840 686 bytes
minimal 7 448 383 bytes
ver. 2.8.12 libwxmsw28u_core.a 8 444 360 bytes
minimal 3 108 575 bytes
MSVC-10
ver. 2.9.1 wxmsw29u_core.lib 64 806 104 bytes
minimal 3 992 576 bytes
ver. 2.8.12 wxmsw28_core.lib 31 135 714 bytes
minimal 1 187 840 bytes
MinGW的大小超过2.3倍,MSVC-10的大小超过3.6倍。 我heared,即使在发布版本中,2.9分支也有断言和一些调试信息,所以我在config.gcc中将DEBUG_FLAG设置为0,在include / msw / setup.h中取消注释
#ifdef NDEBUG
#define wxDEBUG_LEVEL 0
#else
#define wxDEBUG_LEVEL 2
#endif
并使用
mingw32-make UNICODE=1 SHARED=0 DEBUG_FLAG=0 BUILD=release MONOLITHIC=0
用于构建库的命令。在make log compiller中有-O2优化键和NDEBUG定义,但是大小没有减少太多:
libwxmsw29u_core.a 14 555 082 bytes
minimal 5 856 718
2.9分支中的wxWidget会发生什么?为什么尺寸如此之大?我做错了什么?