2015-01-09 6 views
8

Wenn ich ein C++ Projekt mit Visual Studio der Prozess in stecken bauen, während Code generieren:Visual Studio in stuck generieren Code

1>------ Rebuild All started: Project: myWrapper, Configuration: Release Win32 ------ 
1> funzioni_ausiliarie.cpp 
1> myWrapperFunction.cpp 
1> NLP_eta_tre_spline.cpp 
1> Generating Code... 

MSVS noch reagiert und scheint zu Arbeits, aber ich wartete mehr als 10 Minuten und es war nicht fertig. Endlich habe ich den Vorgang abgebrochen. Stattdessen wird im Debug-Modus in 20 Sekunden fertig.

Ich habe auch versucht, "Whole Program Optimization" und "Multi-Prozessor-Kompilierung" in C++ - Kompilieroptionen zu deaktivieren und ich ließ den Parameter "Link Time Code Generation" in Linker-Optionen (natürlich für Release-Konfiguration) leer, aber das Problem immer noch tritt ein.

Jede Hilfe würde sehr geschätzt werden.

Antwort

9

Ich habe diese http://www.gamedev.net/topic/627047-visual-studio-generating-code-infinitely/ angewendet. Das heißt: Setzen Sie in Prjekteigenschaften C++ -> Optimierung -> Optimierung auf "Deaktivieren".

Jetzt funktioniert es richtig. Ich habe auch auf die ursprünglichen Werte "Whole Program Optimization", "Mehrprozessor-Kompilierung" und "Link Time Code Generation" eingestellt und es funktioniert.

+1

Diese Lösung funktionierte für mich. Aber ich frage mich, warum ist das Problem passiert. Vielleicht ein Fehler in VS? –

+0

Autsch. Deaktivieren von Optimierungen Großhandel ist ein großer Hammer. –

0

Mit VS2017 (15.5.0) stieß ich auf ein Problem, bei dem das Erstellen einer Drittanbieterbibliothek für Release den Compiler bei "Generating Code" für einige Minuten hängte, und ich gab das Warten auf. Ich hatte Whole Program Optimization verwendet, aber das Ausschalten war nicht hilfreich.

Ich hatte auch Optimierung auf maximale Geschwindigkeit (/ O2) eingestellt. Habe ich es zu Gewohnheit und eingeschaltet /Ob2, /Oi, /O und /Oy. Der Build wurde in wenigen Sekunden abgeschlossen. Für die Bibliothek, die ich benutzte, war das gut genug.