嚴重錯誤 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。
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應