Ich habe immer Visual Studios mit integrierter GUI-Unterstützung für die Konfiguration meiner Projekte verwendet, häufig mithilfe von Eigenschaftenblättern, sodass mehrere Projekte einen gemeinsamen Satz verwenden.
Einer meiner Hauptgründe dabei ist die Verwaltung mehrerer Projekte, Konfigurationen und Plattformen. Wenn Sie einfach alles mit der Haupt-GUI machen (klicken Sie mit der rechten Maustaste auf das Projekt -> Eigenschaften), wird es schnell zu einem Chaos, das schwer zu warten und anfällig für Fehler ist (z. B. wenn Sie ein Makro nicht richtig definieren oder die falsche Laufzeitbibliothek verwenden usw.). Umgang mit der Tatsache, dass verschiedene Leute dort Abhängigkeitsbibliotheken an verschiedenen Orten ablegen (z. B. meine leben alle in "C: \ Libs \ [C, C ++] \ [lib-name] \") und dann häufig die verschiedenen Versionen dieser Bibliotheken verwalten Auch anders (Release, Debug, x86, x64 usw.) ist ein großes Problem, da es die Zeit für die Einrichtung auf einem neuen System erheblich verkürzt. Dann gibt es Probleme mit der Versionskontrolle und der Trennung aller Pfade. .
Eigenschaftenblätter machen dies ein bisschen besser, aber ich kann nicht haben, dass ein Blatt separate Einstellungen für verschiedene Konfigurationen und Plattformen hat (die Dropdown-Felder sind ausgegraut), was dazu führt, dass ich viele Blätter habe, die, wenn sie in der richtigen Reihenfolge geerbt werden, das tun, was ich will ( "x86", "x64", "debug", "release", "common", "verzeichnisse" (behandelt das zuvor erwähnte Abhängigkeitsproblem durch Definieren von Benutzermakros wie BoostX86LibDir) usw.) und wenn in der falschen Reihenfolge geerbt (z "common" vor "x64" und "debug") führen zu Problemen wie dem Versuch, eine falsche Bibliotheksversion zu verknüpfen oder die Ausgabe falsch zu benennen ...
Was ich möchte, ist eine Möglichkeit, mit all diesen verstreuten Abhängigkeiten umzugehen und eine Reihe von "Regeln" einzurichten, die von allen meinen Projekten in der Lösung verwendet werden, beispielsweise die Benennung einer Ausgabebibliothek als "mylib- [vc90, vc100] - [x86" , x64] [- d] .lib ", ohne dies alles für jede einzelne Projekt-, Konfigurations- und Plattformkombination tun zu müssen, und halten Sie sie dann alle korrekt synchron.
Ich bin mir bewusst, dass ich auf völlig andere Systeme wie CMake umsteige, die die erforderlichen Dateien erstellen. Dies erschwert jedoch die Dinge an anderer Stelle, da selbst einfache Aufgaben wie das Hinzufügen einer neuen Datei zum Projekt zusätzliche Änderungen an anderer Stelle erfordern, was ich nicht bin Ich bin mit beiden völlig zufrieden, es sei denn, es gibt einige mit VS2010-Integration, die diese Art von Änderungen verfolgen können.