Visual Studio 编译器默认值为 /o

Visual Studio Compiler Default for /O

本文关键字:默认值 Studio 编译器 Visual      更新时间:2023-10-16

当C++编译命令行中没有提供/Od、/O1、/O2、/Ox 时,VS2010/12 的编译器是否使用默认优化级别?

我目前正在使用/od,因为我在使用其他级别时目睹了一些与优化相关的错误。但是,这会导致/GS 被禁用 - 这是不需要的。

当我清除"项目属性->C/C++->优化->优化"选项的框时,我看到命令行确实不包含任何选项。但我不知道这是否只是意味着编译器使用一些默认的优化级别。

默认似乎没有优化 - 请参阅下面的"cl/?"的输出:

                          -OPTIMIZATION-
  /O1 minimize space                      /O2 maximize speed
  /Ob<n> inline expansion (default n=0)   /Od disable optimizations (default)
  /Og enable global optimization          /Oi[-] enable intrinsic functions
  /Os favor code space                    /Ot favor code speed
  /Ox maximum optimizations               /Oy[-] enable frame pointer omission