【发布时间】:2008-12-02 03:25:27
【问题描述】:
作为背景,我是一个开源项目的开发人员,一个名为 openframeworks 的 c++ 库,它是不同库的包装器,如 opengl、quicktime、freeImage 等。在下一个版本中,我们添加了一个名为 POCO 的 c++ 库,它在某些方面类似于 boost,因为它是 java 基础库类型功能的替代方案。
我刚刚注意到,在我将 POCO 库添加为静态链接库的最新版本中,编译过程中生成的 .obj 文件非常庞大 - 例如,有几个 .obj非常小的 .cpp 文件的文件大小为每个 2mb。整体编译的 .obj 文件大约 12mb 左右。另一方面,生成的 exe 文件很小 - 300k 到 1mb。
相比之下,在 code::blocks 中编译的同一个库生成的 .obj 文件在 exe 中的大小大致相同 - 它们都相当小。
Visual Studio 中的链接和 .obj 进程是否发生了我不理解的问题?例如,它是否在做某种智能预链接或其他增加 .obj 大小的事情?我已经尝试了一些设置,例如增量链接等,但没有看到任何变化。
提前感谢您提供任何尝试或见解的想法!
-扎克
注意:非常感谢!我刚试过,dumpbin,它说“匿名对象”并且不返回有关该对象的信息。 this 可能是原因......
注意 2,在查看了上面的链接后,删除 LTCG(链接时间代码生成 - /GL)后,.obj 文件要小得多,dumpbin 可以理解它们。再次感谢!!
【问题讨论】:
标签: c++ visual-studio visual-studio-2008