Compartir a través de


Error irrecuperable C1128

el número de secciones superó el límite de formato de archivo de objeto: compile con /bigobj

Un archivo .obj supera el número de secciones permitidas; ésta es una limitación del formato de archivo objeto COFF.

Esta limitación de secciones se puede haber alcanzado por el uso de /Gy y una compilación de depuración. /Gy hace que las funciones vayan a sus propias secciones COMDAT. En una versión de depuración, hay una sección de información de depuración para cada función COMDAT.

También puede producirse el error C1128 cuando hay demasiadas funciones inline.

Para corregir este error, divida el archivo de código fuente en varios archivos, ejecute la compilación sin /Gy o con /bigobj (Aumentar el número de secciones en el archivo .Obj). Si no usa /Gy, en la compilación, debe especificar las optimizaciones individualmente, ya que /O2 y /O1 implican /Gy.

Si es posible, compile sin información de depuración.

También es posible que necesite disponer de creaciones de instancias de plantillas específicas en archivos de código fuente independientes, en lugar de esperar a que el compilador las emita.

Cuando se porta código, es probable que el error C1128 aparezca primero al usar el compilador x64 y mucho más tarde con el compilador x86. x64 tendrá al menos 4 secciones asociadas a cada función compilada /Gy o insertadas desde plantillas o clases insertadas: código, pdata, información de depuración y, posiblemente, xdata. X86 no tendrá los datos pdata.