为什么构建的库大小如此之大?

时间:2014-02-01 01:25:37

标签: compiler-construction build size shared-libraries static-libraries

我已经下载了一个大小约为450 MB的C ++库。构建后,库大约需要2 GB。为何如此大的差异?所有额外的尺寸都去了哪里?

我的问题更具哲学性而非技术性。我没有寻求我的特定软件问题的确切答案,而是对不同构建方案中库大小可能不同的原因的一般解释。

1 个答案:

答案 0 :(得分:1)

许多软件开发语言和编译器可能存在的一个共同点是,任何库的调试版本都与发布版本不同。

发布版本通常在构建时考虑到大小和性能,并且可能会优化发布版本,可能会剥离符号,并且可能会从源代码中删除其他代码,内存保护程序,调试助手等等(例如,在C系列中,通过预处理器定义的方式。)

但是请注意,这并不总是总是意味着一大块释放代码将小于其调试版本。例如,在搜索性能时,再次谈到C系列,可能会展开循环 - 导致代码更快但更大。