Partager via


Erreur irrécupérable C1128

nombre de sections dépassé la limite de format de fichier objet : compiler avec /bigobj

Un fichier .obj a dépassé le nombre de sections autorisées, une limitation de format de fichier objet COFF.

L’atteinte de cette limitation de section peut être le résultat de l’utilisation de /Gy et d’une build de débogage ; /Gy provoque l’entrée des fonctions dans leurs propres sections COMDAT. Dans une build de débogage, il existe une section d’informations de débogage pour chaque fonction COMDAT.

C1128 peut également être provoqué lorsqu’il existe trop de fonctions inline.

Pour corriger cette erreur, divisez votre fichier source en plusieurs fichiers de code source, compilez sans /Gy ou compilez avec /bigobj (augmentez le nombre de sections dans . Fichier Obj). Si vous ne compilez pas avec /Gy, vous devez spécifier les optimisations individuellement, car /O2 et /O1 impliquent tous deux /Gy.

Si possible, compilez sans informations de débogage.

Vous devrez peut-être également avoir des instanciations spécifiques de modèles dans des fichiers de code source distincts, plutôt que de les émettre.

Lors du portage du code, C1128 apparaîtra probablement en premier lors de l’utilisation du compilateur x64, et bien plus tard avec le compilateur x86. x64 comporte au moins 4 sections associées à chaque fonction compilée /Gy ou insérée à partir de modèles ou de classes inline : code, pdata et informations de débogage, et éventuellement xdata. X86 n’aura pas le pdata.