当 C++ 编译命令行中没有提供 /Od,/O1,/O2,/Ox 时,VS2010/12 的编译器是否使用默认优化级别?
我目前正在使用 /Od,因为我在使用其他级别时目睹了一些与优化相关的错误。但是,这会导致 /GS 被禁用 - 这是不需要的。
当我清除“项目属性->C/C++->优化->优化”选项的框时,我看到命令行确实不包含任何选项。但我不知道这是否只是意味着编译器使用了一些默认的优化级别。
当 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