Ich habe eine große Binärdatei, die aus vielen statischen Bibliotheken und Standalone-CPP-Dateien besteht. Es ist konfiguriert, inkrementelle Verknüpfung zu verwenden, alle Optimierungen sind deaktiviert von /Od
- es ist Debug-Build.
Ich habe festgestellt, dass, wenn ich eine eigenständige cpp-Datei ändere, die inkrementelle Verknüpfung schnell abläuft - 1 min. Aber wenn ich irgendeine cpp in irgendeiner statischen Bibliothek ändere, dann läuft es lange - 10 Minuten, die gleiche Zeit wie normale Verknüpfung. In diesem Fall habe ich keinen Vorteil von inkrementeller Verknüpfung. Ist es möglich, es zu beschleunigen? Ich benutze VS2005.
Legen Sie "Bibliotheksabhängigkeitseingaben verwenden" in der Linker Allgemeine Eigenschaftenseite für Ihr Projekt. Das wird die einzelnen OBJ-Dateien von der Abhängigkeit .lib statt der .lib verknüpfen, die einige verschiedene Nebenwirkungen haben kann.
Ich werde dir eine andere Art von Antwort geben. Hardware.
Was ist Ihre Entwicklungsumgebung? Gibt es sowieso mehr RAM oder ein Projekt auf ein Solid State Drive? Ich fand, dass die Verwendung einer SSD meine Verbindungszeiten um eine Größenordnung bei meinen Arbeitsprojekten beschleunigte. Hat ein wenig zur Kompilierzeit beigetragen, aber die Verlinkung war riesig. Es half natürlich auch, ein schnelleres System zu bekommen.
Wenn ich richtig verstanden habe (nach der Verwendung von Visual Studio seit einigen Jahren), funktioniert die inkrementelle Verknüpfung nicht für Objektdateien, die Teil von statischen Bibliotheken sind.
Eine Möglichkeit, dies zu lösen, besteht darin, Ihre Lösung so zu strukturieren, dass Ihr Anwendungsprojekt alle Quelldateien enthält.
Tags und Links c++ visual-studio performance visual-studio-2005 incremental-linking