2

C++ コンパイル コマンド ラインで /Od、/O1、/O2、/Ox のいずれも指定されていない場合、VS2010/12 のコンパイラは既定の最適化レベルを使用しますか?

他のレベルを使用しているときに最適化関連のバグをいくつか目撃したため、現在 /Od を使用しています。ただし、これにより /GS が無効になります。これは望ましくありません。

「Project Properties->C/C++->Optimization->Optimization」オプションのボックスをクリアすると、コマンド ラインに実際にオプションが含まれていないことがわかります。しかし、これがコンパイラがデフォルトの最適化レベルを使用することを意味するだけなのかどうかはわかりません。

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 に答える