致命的なエラー 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 は含め "ない"。