Ich habe ein C++ - Projekt von Visual Studio 2015, das Verweise auf einige kostenlose Bibliotheken von Drittanbietern enthält.Teilen Sie ein Visual Studio C++ - Projekt: Wie geht es (fast) automatisch?
Nur um die Kompilierzeit zu reduzieren (derzeit 5 - 90 Sekunden),
Ich möchte das Projekt in viele kleinere Projekte aufteilen.
In Vorbereitung, ich habe bereits Filter im Lösungsexplorer erstellt. zeigen
Die Filter eine Top-Level-Struktur meines Projektes - aufgeteilt in Tier: -
Tier 1 - my core library, no reference to outside, rarely change
Tier 2a - my custom encapsulator for external library "A"
Tier 2b - my custom encapsulator for external library "B"
...
note: all Tier2 #include Tier1 , rarely change
Tier 3 - business logic that rarely change, #include Tier1&2
Tier 4 - business logic that often change , #include Tier1&2&3
Frage: Wie dieses Projekt in viele Projekte leicht zu spalten?
z.B. fast simpel, wenn man auf einen Filter klickt und dann "in ein neues Projekt extrahieren" auswählt
Ich habe einige Quellen gelesen - ihre Erklärung eignet sich für die Erstellung von Grund auf neu, nicht für ein bestehendes Projekt.
Es scheint auch, dass ich einige Zeilen für einige einzelne Dateien hinzufügen muss.
Ich habe> 100 Dateien, so ist es nicht sehr praktisch.
Ich googelte "Split Visual Studio C++ Projekt", fand aber nicht viele Ergebnisse.
Relate Frage: nicht erklären, "wie"
How do you split a Visual Studio Solution?
Externer Link: alle die Zeile #define DECLDIR __declspec (dllexport)
http://www.codeguru.com/cpp/cpp/cpp_mfc/tutorials/article.php/c9855/DLL-Tutorial-For-Beginners.htm
https://manski.net/2011/11/creating-a-dll-project/
Es gibt keinen einfachen Weg, den ich kenne. Ich mache normalerweise eine Kopie des gesamten Projektordners, benenne die vcxproj-Datei um, benenne alle Referenzen in den Projektnamen in der vcxproj-Datei um (benutze notepad ++), füge dann das neue Projekt zur Lösung hinzu und lösche alle Dateien, die ich nicht haben wollte da drin. Dauert ungefähr 3 Minuten, sobald Sie sich daran gewöhnt haben ... nicht ideal, aber immer noch ... – Baldrick
@Baldrick Thanks! 3 Minuten am besten ist sehr wenig! .... Können Sie bitte erklären, "benennen Sie alle Referenzen auf den Projektnamen in der vcxproj Datei" bitte? Wenn ich pj1.vcxproj habe und Bibliothek pj2 erstellen möchte, werde ich grob alle Wörter "pj1" in pj1.vcxproj bearbeiten müssen, richtig? Ich habe nur einen Platz gefunden pj1 RootNamespace>, meinst du das? ...... Muss ich noch DECLDIR declspec (dllexport) jede Datei manuell? –
javaLover
Ja, im Grunde genommen. Wie viele Referenzen es gibt, hängt wirklich davon ab, was im Projekt enthalten ist. Benennen Sie alle gefundenen Referenzen um und versuchen Sie, sie zur Lösung hinzuzufügen. Es wird nicht geladen, wenn Sie es vermasselt haben. Dies wird nicht mit dem 'DECLDIR' Teil helfen - dafür benötigen Sie wahrscheinlich ein Makro oder Skript, um Ihre Dateien zu bearbeiten und hinzuzufügen. – Baldrick