我们的下一个产品已经变得太大,无法链接到运行 32 位 Windows 的计算机上。所有 lib 文件的总和超过 2Gb,只能在 64 位 Windows 计算机上链接。最终我们将超越这个界限,因为我们的软件往往会增长而不是收缩,而且我们使用的是 32 位链接器 (MS Visual Studio 2005):当我们的 lib 大小总计超过 3Gb 时,我们预计会遇到麻烦。
如何在不修剪代码的情况下减小 .lib 文件或 .obj 文件的大小?例如,我们使用了很多模板:有什么方法可以减少它们的占用空间吗?有什么方法可以通过检查 .lib/.obj 文件找出导致膨胀的原因吗?这可以自动化而不是通过肉眼检查吗? 2.5Gb 是大量需要浏览和比较的文本。
外部限制阻止我们以单个 .exe 以外的任何形式发布,因此 DLL 解决方案不可用。
我曾经与多个 MLoC 一起参与过一个项目。虽然我们的仍然会在 32 位机器上链接,但链接时间很糟糕,并成为一个主要问题,因为开发人员每个工作日只能完成十几个编辑-编译-测试周期。 (通过分布式编译可以很好地处理编译时间。)
我们切换到动态链接。这会增加启动时间,但这可以通过延迟加载 DLL 来管理。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)