Visual c++ 对于MSVC项目中的版本配置,您建议使用哪些标志

Visual c++ 对于MSVC项目中的版本配置,您建议使用哪些标志,visual-c++,flags,visual-studio,Visual C++,Flags,Visual Studio,我正在查看MSVC项目的标志,但我无法获得有关以下功能的足够文档: 使用链接时间代码生成(/ltcg) 启用功能级链接(/Gy) 消除未引用的数据(/OPT:REF) 删除冗余COMDAT(/OPT:ICF) 针对windows98进行优化否(/OPT:NOWIN98) 启用字符串池(/GF) 我们使用单独的调试/发布版本,所以我主要对发布的标志感兴趣。 欢迎解释这些标志及其相互关系,以及您在自己的项目中使用的标志 这在很大程度上取决于您希望从构建中获得什么,例如,您是否有前面讨论过的独立发

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

  • 使用链接时间代码生成(/ltcg)
  • 启用功能级链接(/Gy)
  • 消除未引用的数据(/OPT:REF)
  • 删除冗余COMDAT(/OPT:ICF)
  • 针对windows98进行优化否(/OPT:NOWIN98)
  • 启用字符串池(/GF)
我们使用单独的调试/发布版本,所以我主要对发布的标志感兴趣。
欢迎解释这些标志及其相互关系,以及您在自己的项目中使用的标志

这在很大程度上取决于您希望从构建中获得什么,例如,您是否有前面讨论过的独立发布和调试构建。如果您有一个联合调试/发布版本,则需要函数级链接,以便在调试器中使用大多数开发人员都希望使用的“编辑并继续”


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

打开PDB

是的,永远不知道何时需要它,特别是当前版本是否已更改,以及早期客户端版本是否引发故障。