我最近试图从Linux Mint 21移动到21.2。我已经下载了发行版,并注意到ISO文件的3Gb与2.4 Gb大小。从比较主要的单一差异是包含GCC 12
沿着GCC 11
。11需要66 Mb,12 - 411 Mb!(未压缩)。
网络搜索并没有帮助找到答案。是什么让海湾合作委员会12如此之大?
P.S.额外的问题是,如果我只是从发行版中删除GCC 12以节省保存空间,会发生什么?(嗯,不仅仅是删除,还将指向12的链接替换为指向11的可执行文件的链接)
100(/usr/lib/gcc/x86_64-linux-gnu/12/
)|11
)主要是由于两个文件的大小不同:cc1
可执行文件200对26 Mb,lto1
194对24 Mb。
当软件“突然”膨胀6倍时,我会怀疑......
P.S.2.在没有答案的同时,我想与Ubuntu进行比较,怀疑Linux Mint构建者忽略了一些优化。但目前最新的Ubuntu发行版有一些问题(与问题无关)。
1条答案
按热度按时间8mmmxcuj1#
各种因素对二进制文件的大小起着作用,主要是编译器构建时使用的选项。
通过比较两个编译器版本的
-v
输出,您可能会得到一些额外的线索,这些输出告诉GCC的配置选项。--enable-checking=release
添加到配置选项中。-O0
构建,代码大小和执行时间将增加。对于发布,您希望构建像-O2
这样的优化编译器并启用LTO。strip
可执行文件。在安装时,你可以make install-strip
而不是make install
,这样安装脚本将为你运行strip
。gcc
的编译器也发挥了作用(在非引导模式下,例如--disable-bootstrap
)。我猜是第三个,所以在删除可执行文件之前,你可以在它们上尝试
strip
。