次の方法で共有


致命的なエラー C1128

セクションの数がオブジェクト ファイル形式の制限を超えています : /bigobj と共にコンパイルしてください

.obj ファイルが、許容されるセクション数である COFF オブジェクト ファイル形式制限を超えました。

/Gy とデバッグ ビルドを使用した結果、このセクション制限に到達することがあります。/Gy により、関数は独自の COMDAT セクションに入ります。 デバッグ ビルドには、各 COMDAT 関数のデバッグ情報セクションがあります。

C1128 エラーは、インライン関数が多すぎることが原因で発生することもあります。

このエラーを解決するには、ソース ファイルを複数のソース コード ファイルに分割し、/Gy を指定せずにコンパイルするか、または /bigobj (.Obj ファイル内のセクションの数を増やす) を指定してコンパイルします。 /Gy を指定せずにコンパイルする場合、/O2/O1 の両方が /Gy を暗黙に指定するため、それぞれに最適化処理を指定する必要があります。

可能であれば、デバッグ情報なしでコンパイルしてください。

また、テンプレートの固有のインスタンス化をコンパイラで出力するのではなく、別のソース コード ファイルにこれらを指定する必要もあります。

コードを移植する場合、x64 コンパイラを使用する場合は C1128 が最初に表示され、x86 コンパイラを使用する場合は C1128 がかなり後のほうで表示される可能性があります。 x64 には、/Gy でコンパイルされた、またはテンプレートまたはクラス インラインからインライン化された各関数に関連付けられた少なくとも 4 つのセクションがあります。コード、pdata、デバッグ情報、および場合によっては xdata です。 X86 には pdata がありません。