私はg ++コンパイラ、特にオプション(-s、-g、-Oなど)に精通していません。
まず、これらのオプションはいつ有効になりますか?コンパイルまたはリンクフェーズ中?私は通常、必要なすべてのオプションを両方のフェーズに配置します。
次に、-g1、-g2、-g3オプションはありますか? -gが実行可能ファイルにデバッグ情報を追加することは知っています。他の人はどう違うのですか?
第三に、-sは何をしますか? -s、-g、および-O3は連携して機能しますか?私の目標は、実行可能ファイルを1)すばやく実行し、2)可能であればサイズを小さくすることです。何を指示してるんですか?
オプションではなく、達成したいことに焦点を当てるべきです。あなたが達成したいことに関する私の一般的なコメント:
常にマニュアルを使用し(シェルの「man g ++」と入力するか、インターネットで「man g ++」を検索してアクセスします)、その機能に興味がある場合はオプションを検索してください。より高いレベルの質問がある場合は、質問することができます(たとえば、-g1と-g3の違いはマニュアルで説明されています)
提案として:-O3を使用してください。プログラムを絶えず開発し、デバッガーとしてGDBを使用する場合は、-ggdb-g3を使用します。
編集:それらをいつ適用するかについて:通常、フェーズについて心配する必要はありません。オプションを送信するだけで、g ++がそれらを処理します。より具体的なものが必要な場合は、さらに確認できます。