在我们的例子中,/ DEBUG二进制文件大50%,使用/ DEBUG /OPT:REF构建的二进制文件仍然大40%。根据{{3}}中的答案,我预计带有调试信息的发布版本不应该大得多。我们缺少什么?
这是我们目前正在发布剥离的二进制文件的一个主要原因,而不是一个易于调试的二进制文件。我不是建筑大师,所以请耐心等待。
大小:
22MB带/ O2
35MB带/ O2 / DEBUG
带/ O2 / DEBUG / OPT的32MB:REF
答案 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)
代码可能不会产生那么大的二进制文件。几点提示: