2

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

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

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

4

1 回答 1

4

默认情况下似乎没有优化 - 请参阅“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
于 2012-12-10T13:54:49.043 回答