[VC++ 2013] LNK1102: out of memory

Programmiersprachen, APIs, Bibliotheken, Open Source Engines, Debugging, Quellcode Fehler und alles was mit praktischer Programmierung zu tun hat.
Antworten
Benutzeravatar
Krishty
Establishment
Beiträge: 8351
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

[VC++ 2013] LNK1102: out of memory

Beitrag von Krishty »

Diesen Fehler bekomme ich regelmäßig beim Kompilieren; jedes 3.–5. Mal. Danach direkt nochmal kompilieren geht einwandfrei.

Das Problem bestand schon mit Visual C++ 2012. Das Projekt ist nicht sonderlich groß (~20 Quelldateien erzeugen eine 200-KiB-EXE). Ich habe 6 GiB RAM frei und link.exe verbraucht 25 MiB Spitze. Die Auslagerungsdatei hat ein paar GiB Platz. Darum bezweifle ich, dass es sich um tatsächliche Speichererschöpfung handelt.

Wie kriege ich den Fehler weg? Er nervt!
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Schrompf
Moderator
Beiträge: 5164
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas
Wohnort: Dresden
Kontaktdaten:

Re: [VC++ 2013] LNK1102: out of memory

Beitrag von Schrompf »

Die Reserven in Hauptspeicher und Auslagerungsdatei sind unwichtig, glaube ich, weil die VisualStudio-Toolchain ja 32bit ist - da ist nach 2 bis 3 GB Adressraum eh Ende. Allerdings ist Dein Projekt ja wirklich winzig, daher klingt das ganze sehr seltsam. Vielleicht irgendwelche explodierenden rekursiven Templates? Wobei die ja auch verlässlich explodieren müssten, wenn sie explodieren. Hm.

Sehr seltsam. Sorry, keine Idee.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
Krishty
Establishment
Beiträge: 8351
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [VC++ 2013] LNK1102: out of memory

Beitrag von Krishty »

Der Quelltext ist recht simpel; ich merke es auch vor allem in Debug-Versionen (kein LTCG, kein COMDAT Folding, nix).

Hier in Chromium haben sie das gelöst mit
Improve automatic-retry on MSVC flaky build tools. (issue7013007) hat geschrieben: known_toolset_bugs = [
  '\\c2.dll',
  'Midl.Exe (tool returned code: 1282)',
  'LINK : fatal error LNK1102: out of memory',
  'fatal error LNK1318: Unexpected PDB error',
]


Retry 3 times when deleting files and add a sleep in between. Yay for file locks.
print('\nSleeping 15 seconds. Lovely windows file locks.')
Bitte lasst das einen schlechten Scherz sein … kompilieren dauert rund eine halbe Sekunde; da könnten Einzeloperationen tatsächlich in die Unschärfe des CPU Schedulings rutschen …
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
NytroX
Establishment
Beiträge: 406
Registriert: 03.10.2003, 12:47

Re: [VC++ 2013] LNK1102: out of memory

Beitrag von NytroX »

Hi,

ich hatte das Problem auch schon, das hat tatsächlich überhaupt gar nichts mit dem Speicher zu tun, das ist einfach ein Bug.
Ich hatte damals was in den Projekteinstellungen geändert und eine Klasse neu geschrieben, dann ging es.
Ich weiß aber auf Teufel komm raus nicht mehr was genau das Problem war.

Ich glaube das hing mit einem Header (von VS) zusammen, hast du irgendwelche "ungewöhnlichen" includes/Headers, die du sonst nicht verwendest?
Benutzt du viele Templates?

Was du auch versuchen kannst: Leg ein neues Projekt an, und kopier da deine Files rein.

Wenn das Problem auch in einem neuen Projekt auftaucht: Versuch mal nach und nach den Source auszukommentieren, und schau wann es wieder geht.
Antworten