当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

10-08 18:38