0

/Gy オプションを指定した Microsoft C++ は、リンカーが未使用の関数を省略できるように、すべての関数を別のセクションに配置します。これにより、実行可能ファイルのサイズが小さくなる場合があります。

すべての関数を異なるセクションに配置するだけでなく、各セクション COMDAT を選択 IMAGE_COMDAT_SELECT_NODUPLICATES でマークします。COMDAT の目的は、何かを複数の場所で定義できるようにすることです (リンカーは 1 つの定義を選択し、他の定義を破棄します) が、Selection 値は複数の定義を許可していません。

IMAGE_COMDAT_SELECT_NODUPLICATES の目的は何ですか? または、/Gy を指定した Microsoft C++ がコード セクションを COMDAT とマークするのはなぜですか?

4

0 に答える 0