您建议在MSVC项目中为发布配置使用哪些标志

时间:2009-01-08 13:29:50

标签: visual-c++ flags visual-studio

我正在审查我们为MSVC项目提供的标志,但我无法获得有关以下功能的足够文档:

  • 使用链接时间代码生成(/ ltcg)
  • 启用功能级别链接(/ Gy)
  • 消除未引用数据(/ OPT:REF)
  • 删除冗余COMDAT(/ OPT:ICF)
  • 针对windows98优化否(/ OPT:NOWIN98)
  • 启用字符串池(/ GF)

我们使用单独的调试/发布版本,因此我主要对发布标志感兴趣。 关于这些标志的解释以及它们如何相互关联,以及您在自己的项目中使用哪些标志非常受欢迎!

2 个答案:

答案 0 :(得分:2)

在很大程度上,它取决于您在构建中寻找的内容,例如,您是否按照here所述进行了单独的发布和调试构建。如果你有一个组合的调试/发布版本,你将需要功能级别链接,以便在调试器中使用编辑和继续,这是大多数开发人员想要的。

在其他人中,他们主要减少可执行文件的大小。例如,如果您有两个相同的字符串文字char * a =“happy holidays”,* b =“happy holidays”,则在启用字符串池时它们将驻留在同一块内存中。

答案 1 :(得分:1)

开启PDB