我们有一个大型项目,大约 300 个 DLL 中有超过 100 万行代码。到目前为止,我们一直在使用 VS6。
我现在已经将所有内容都转换为 VS2008,所有编译、链接,更重要的是 - 运行!
==>但是...生成的编译后的 OBJ 文件要大 10 倍,并且链接非常慢,链接器经常会达到 >1GB 的内存。
部分含义是我需要用 /bigobj 编译某些项目。
结果是从桌面上的大约 1:45 到 3h 的构建。DLL 和 LIB 的大小与旧 VS6 版本中的大小大致相同。
我已经阅读了所有可以在这里找到的内容,但没有找到解决此问题的方法。如果它是额外的调试信息 - 我不想要它。我以前受够了。释放的大小增加了,但没有那么多......
有人有什么想法吗?还是我唯一的选择是将项目分解成更小的单元?重构是我唯一的希望吗?!当然,我错过了一个秘密标志......
Edit1 (13/07/2012 12:20BST) 我比较了 VS6 与 VS2008 创建的 Obj 的垃圾箱。2008 年的那个看起来好像是“静态链接”。在 VS6 中,它包含一些来自当前 DLL 的符号。在 VS2008 中,它包含来自(可能)它所依赖的所有库的符号。VS6 和 VS2008 的垃圾箱大小分别为 66kb 和 32,000kb。