Visual Studio 2005 - 使用/ DEBUG / OPT构建的二进制文件:REF比非调试版本大得多

时间:2012-02-15 10:40:36

标签: visual-studio visual-c++

在我们的例子中,/ DEBUG二进制文件大50%,使用/ DEBUG /OPT:REF构建的二进制文件仍然大40%。根据{{​​3}}中的答案,我预计带有调试信息的发布版本不应该大得多。我们缺少什么?

这是我们目前正在发布剥离的二进制文件的一个主要原因,而不是一个易于调试的二进制文件。我不是建筑大师,所以请耐心等待。

大小:
22MB带/ O2
35MB带/ O2 / DEBUG
带/ O2 / DEBUG / OPT的32MB:REF

3 个答案:

答案 0 :(得分:1)

如果它是用C ++编写的,那么在未优化时可以将STD编译得更大。但我不确定是不是这样。 50%的确切字节数是多少?

答案 1 :(得分:1)

根据http://msdn.microsoft.com/en-us/library/xe4t6fc1(v=vs.80).aspx的VS2005文档:

  

/ DEBUG将/ OPT选项的默认值从REF更改为NOREF和   从ICF到NOICF(因此,您需要明确指定/ OPT:REF或   / OPT:ICF)

因此,为了减小尺寸,您可以尝试同时指定:

/O2 /DEBUG /OPT:REF /OPT:ICF

答案 2 :(得分:0)

代码可能不会产生那么大的二进制文件。几点提示:

  • 您使用的是静态库,而不是动态链接,特别是MFC DLL吗?
  • 拥有大量资源,即图标,位图,字符串资源,自定义资源?