最低
-O0
基本的に、最適化を行わないようにコンパイラに指示します。オプティマイザは、一部のローカル変数を削除したり、一部のコード ブロックをマージしたりできます。その結果、デバッグが予測不能になる可能性があります。-O0
オプションの価格は非常に遅いコード実行ですが、バージョン 4.8 以降の GCC コンパイラ (Fortran コンパイラを含む) は、新しく導入された最適化レベルを受け入れます-Og
。
-Og
デバッグ エクスペリエンスを最適化します。-Og は、デバッグを妨げない最適化を有効にします。これは、標準の編集-コンパイル-デバッグ サイクルに最適な最適化レベルであり、高速なコンパイルと優れたデバッグ エクスペリエンスを維持しながら、妥当なレベルの最適化を提供します。
したがって、可能な場合は を使用し-Og
、そうでない場合は を使用します-O0
。
このオプションは、対話型デバッガー (GDB) で使用するためのデバッグ情報を生成するようコンパイラーに要求することで、実際にデバッグを可能にします。
追加
それらはたくさんあります。私の意見では、最も有用なものは次のとおりです。
-Wall
「マクロと組み合わせても、一部のユーザーが疑わしいと見なし、簡単に回避 (または警告を回避するために変更) できる構造に関するすべての警告を有効にします。」
-Wextra
「-Wall では有効にならないいくつかの追加の警告フラグを有効にする」。
-pedantic
gfortran でサポートされているが、公式の Fortran 95 標準の一部ではない言語機能に関する警告を生成します。さらに「ペダンティック」になり、-std=f95
フラグを使用して警告をエラーにすることもできます。
-fimplicit-none
「明示的な IMPLICIT ステートメントによってオーバーライドされない限り、暗黙的な型付けが許可されないことを指定します。これは、すべてのプロシージャの先頭に暗黙的な none を追加することと同じです。」
-fcheck=all
たとえば、配列境界チェックなどの「実行時テストを有効にする」。
-fbacktrace
「ランタイム エラーが発生した場合、または致命的なシグナル (セグメンテーション違反、不正な命令、バス エラー、または浮動小数点例外) が発生した場合に、Fortran ランタイム ライブラリがエラーのバックトレースを出力する必要があることを指定します。」