VC生成静态库release版比debug版库文件尺寸更大的原因
MSDN社区上的帖子:《Static
lib release build is larger than debug build??》
StackOverflow上的讨论:《Release LIB is huge compared to debug》
StackOverflow上的讨论:《Release LIB is huge compared to debug》
得出的结论是,此问题是由VS的Build选项中Optimization项下的Whole Program Opeimization选项不同设置引起:
Debug版本设置如下:
Release版本设置如下:
Debug版的此选项缺省设成No,而Release版的此选项缺省设成Enable link-time code generation (/GL)
由于静态库并不进行链接,而全局优化要等到链接时,所以release版产生的库文件就要比debug版的大上不少了。把Release改成无全程序优化生成的静态库则和Debug大小差不多了。
另,StackOverflow真的非常不错。神奇的Joel。