我正在使用 MSVC 9 (15.0.30729.1)编译KiCad EDA 套件。
这是一个相当复杂的软件,因此/O2
在 i3 上发布版本的总编译时间为 3.5 小时是完全可以接受的。为了进一步优化代码,我启用/GL
并/LTCG
使用了链接时间代码生成功能。
查看最大的组件:在 x86 上,这在一定程度上减慢了链接过程(如预期的那样),但没有减少代码大小(7.3 MB);在 x64 上,单个链接器调用现在需要 1.5 小时,并且丝毫不会减少代码大小 (10.1 MB)。
作为比较,x64 上的 gcc 生成 11 MB -flto
,没有生成 9.5 MB -flto
(链接器步骤需要 10 分钟)——虽然我知道这个 MSVC 版本明显较旧,但我当然不习惯 gcc 生成更小的代码在比 MSVC 更短的时间内。
由于我对 MSVC 工具链的经验充其量只是肤浅的:链接时代码生成是否通常不会减少代码大小?有没有我可能错过的编译器选项?