分享方式:


嚴重錯誤 C1128

區段數目超過物件檔案格式限制:使用 /bigobj 編譯

.obj 檔案超過允許的區段數目,COFF 物件檔案格式限制。

達到本節限制可能是使用 /Gy 和偵錯組建的結果; /Gy 會導致函式進入自己的 COMDAT 區段。 在偵錯組建中,每個 COMDAT 函式都有偵錯資訊區段。

當內嵌函式太多時,也可能造成 C1128。

若要更正此錯誤,請將原始程式檔分割成多個原始程式碼檔案、不使用 /Gy 編譯,或使用 /bigobj 編譯 (增加 中的區段數目。Obj 檔案) 。 如果您未使用 /Gy 編譯,則必須個別指定優化,因為 /O2 /O1 都表示 /Gy

可能的話,請編譯而不偵錯資訊。

您可能也需要在個別的原始程式碼檔案中具有範本的特定具現化,而不是讓編譯器發出範本。

移植程式碼時,使用 x64 編譯器時,C1128 可能會先出現,稍後使用 x86 編譯器。 x64 將至少有 4 個區段與每個從範本或類別內嵌編譯 /Gy 或內嵌的函式相關聯:程式碼、pdata 和偵錯資訊,以及可能為 xdata。 X86 不會有 pdata。