2010-11-14 9 views
8

Ich habe vor kurzem begonnen, Boost in meinen C++ - Projekten zu verwenden und bemerkte eine ziemlich große Verzögerung, bevor die Kompilierung überhaupt beginnt (wenn ich den Neuaufbau anwende, muss ich 5 Minuten auf Kompilation warten) anfangen).Boost verlangsamt wirklich die Kompilierung auf VS2005

Ich habe das Filemon ausgeführt und es zeigte mir, dass die ganze Zeit das Visual Studio im Leerlauf devenv.exe wurde durchboost einschließlich Verzeichnisse durchsuchen.

Irgendwelche Ideen, wie ich die Compilation beschleunigen könnte, ohne Boost weg vom Projekt zu werfen?

Vielen Dank.

+1

5 Minuten scheint übermäßig, so möglicherweise gibt es etwas mehr/andere als VS Kopfzeilen durchlaufen. Aber hast du einen vorkompilierten Header ausprobiert? Visual C++ vorkompilierte Header sind nicht sehr schön, aber ... –

+0

5 Minuten ist unglaublich übertrieben. Dies mag wie ein offensichtlicher Kommentar erscheinen, aber was ist die Erinnerung an die Maschine, auf der du kompilierst? Ich denke, dass etwas anderes das verursacht, und ich denke nicht, dass es Boost ist. –

+5

'devenv.exe' ist der Visual Studio IDE-Prozess (" Entwicklungsumgebung "). Abgesehen von Scanning und Parsing für IntelliSense, kompiliert es nicht wirklich C++. Kompilieren und Verknüpfen wird tatsächlich von 'cl.exe',' link.exe' und deren Freunden durchgeführt. Versuchen Sie, IntelliSense zu deaktivieren. Hilft das? (IntelliSense ist in Visual Studio 2008 viel besser und in Visual Studio 2010 erheblich verbessert). –

Antwort

4

Wahrscheinlich haben Sie boost include Verzeichnisse direkt in die 'Projekteinstellungen> C/C++> Allgemein> Zusätzliche Include Verzeichnisse' hinzugefügt. Visual Studio verfolgt Projektabhängigkeiten, um eine minimale Neukompilierung zu ermöglichen, wenn sich etwas geändert hat (dies ist nicht mit IntelliSense verbunden).

Wenn Sie dies getan haben, verschieben Sie die Boost-Includes in Ihren VS Include-Pfad - das ist, wo sie hingehören und sie werden niemals von VS überprüft, wenn Sie das Projekt kompilieren. Wenn dies nicht der Fall ist, gibt es möglicherweise einen anderen Link zu den Boost-Verzeichnissen in den Projekteinstellungen.

+0

"VS include path" - wo ist es genau IDE? – Andrew

+1

Es ist unter Extras-> Optionen-> Projekte und Lösungen-> VC++ - Verzeichnisse. Sie müssen sowohl 'Include files' als auch 'Library files' für die Boost-Unterstützung eingerichtet haben. –

+0

Für VS2012 befindet es sich unter Projekteigenschaften -> Konfigurationseigenschaften -> VC++ - Verzeichnisse -> Verzeichnisse einschließen –

Verwandte Themen