Udostępnij za pośrednictwem


Błąd krytyczny C1128

liczba sekcji przekroczyła limit formatu pliku obiektu: skompiluj z /bigobj

Plik .obj przekroczył liczbę dozwolonych sekcji, ograniczenie formatu pliku obiektu COFF.

Osiągnięcie tego ograniczenia sekcji może wynikać z używania /Gy i kompilacji debugowania; /Gy powoduje, że funkcje przechodzą do własnych sekcji COMDAT. W kompilacji debugowania znajduje się sekcja informacji o debugowaniu dla każdej funkcji COMDAT.

C1128 może być również spowodowany zbyt wieloma funkcjami wbudowanymi.

Aby rozwiązać ten błąd, podziel plik źródłowy na wiele plików kodu źródłowego, skompiluj bez /Gy lub skompiluj z /bigobj (zwiększ liczbę sekcji w pliku . Plik Obj). Jeśli nie kompilujesz z /Gy, musisz określić optymalizacje indywidualnie, ponieważ /O2 i /O1 oznaczają /Gy.

Jeśli to możliwe, skompiluj bez informacji debugowania.

Może być również konieczne posiadanie określonych wystąpień szablonów w osobnych plikach kodu źródłowego, a nie w przypadku emitowania ich przez kompilator.

Podczas przenoszenia kodu C1128 prawdopodobnie pojawi się jako pierwszy podczas korzystania z kompilatora x64, a znacznie później w kompilatorze x86. X64 będzie mieć co najmniej 4 sekcje skojarzone z każdą funkcją skompilowaną /Gy lub w tekście z szablonów lub wbudowanych klas: kod, dane pdata i informacje debugowania, a prawdopodobnie xdata. X86 nie będzie mieć danych pdata.