【问题标题】:What flags do you recommend for release configuration in MSVC project您推荐哪些标志用于 MSVC 项目中的发布配置
【发布时间】:2010-09-30 06:25:20
【问题描述】:

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

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

我们确实使用单独的调试/发布版本,所以我主要对发布标志感兴趣。 非常欢迎对这些标志及其相互关系以及您在自己的项目中使用的标志进行解释!

【问题讨论】:

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


    【解决方案1】:

    在很大程度上取决于您从构建中寻找什么,例如您是否有单独的发布和调试构建,如 here 所讨论的。如果您有一个组合的调试/发布版本,则需要函数级链接才能在调试器中使用编辑和继续,这是大多数开发人员想要的。

    在其他方面,它们主要是减小可执行文件的大小。例如,如果您有两个相同的字符串字面量 char *a = "happy holiday", *b = "happy holiday",那么当启用字符串池时,它们将驻留在同一块内存中。

    【讨论】:

      【解决方案2】:

      开启 PDB

      【讨论】:

      • 是的,永远不知道什么时候需要它,尤其是当前版本是否已更改,并且较早的客户端版本会引发错误。
      猜你喜欢
      • 1970-01-01
      • 2010-12-22
      • 2011-06-19
      • 2013-04-17
      • 2010-09-06
      • 1970-01-01
      • 1970-01-01
      • 2010-09-06
      • 1970-01-01
      相关资源
      最近更新 更多