オプションに焦点を合わせるのではなく、達成したいことに焦点を当てる必要があります。あなたが達成したいことに関する私の一般的なコメント:
- 通常、高速と小型の間にはトレードオフがあります。-O3は速いことを意味します。Osは、サイズを大きくすることなく、可能な限り高速であることを意味します。
- デバッグ情報(-g)と最適化(-O3)を使用できますが、ソースと結果のコードが直接接続されていないため、情報が不十分な場合があります。
- 実行可能ファイルからデバッグ情報(-s)を削除すると、その実行可能ファイルを簡単にデバッグできなくなります(デバッグ情報を個別に保存することもできますが、これは別の話です)
常にマニュアルを使用し(シェル「mang ++」と入力するか、インターネットで「man g ++」を検索してアクセスします)、その機能に興味がある場合はオプションを検索してください。より高いレベルの質問がある場合は、質問することができます(たとえば、-g1と-g3の違いはマニュアルで説明されています)
提案として:-O3を使用してください。プログラムを絶えず開発し、デバッガーとしてGDBを使用する場合は、-ggdb-g3を使用します。
編集:それらをいつ適用するかについて:通常、フェーズについて心配する必要はありません。オプションを送信するだけで、g++がそれらを処理します。より具体的なものが必要な場合は、さらに確認できます。