我在其他讨论中已经读过,与Debug dll相比,Release dll的大小已经缩小。但是为什么我所做的dll的大小是另一种方式:Release dll比Debug dll大。它会引起问题吗?
答案 0 :(得分:5)
它不会导致问题,可能是编译器在发布版本中“内联”了更多项目并创建了更大的代码。这一切都取决于代码本身。
无需担心。
编辑: 如果你真的担心并且不担心速度,你可以打开优化尺寸。或者关闭自动内联,看看你有什么不同。
编辑:
更多信息,您可以使用dumpbin /headers
查看dll变大的位置
答案 1 :(得分:3)
您的Release DLL比Debug DLL大多少?
您的调试DLL似乎很小,因为您正在生成PDB符号文件(因此调试符号实际上不是在 DLL文件中)。或者,如果您无意中将调试符号编译到Release DLL中。
答案 2 :(得分:1)
这可能是由循环展开等性能优化引起的 - 如果它显着不同,请检查您的Release链接器设置,以确保您没有静态编译任何内容。
答案 3 :(得分:0)
如果您的应用程序执行高性能任务,则可能会影响性能。如果标记选项生成包含Debug信息的代码,则发布版本甚至可以大于调试版本。但这也取决于您使用的编译器。