Wie setzen bauen, um im Qt-subdir Projekt
Habe ich ein Projekt mit 5-6 Bibliotheken und eine ausführbare Datei. Die ausführbare Datei hängt von den Bibliotheken und von Bibliotheken abhängig von anderen Bibliotheken. Wie kann ich angeben, eine zu bauen, um so die Abhängigkeiten gebaut werden, bevor Sie benötigt werden?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Obwohl diese Frage wurde beantwortet und akzeptiert, vor langer Zeit, ich fühle die Notwendigkeit, andere hinzufügen Antwort; ich ehrlich gesagt glaube, dass es eine bessere Antwort.
Halte ich
CONFIG += ordered
schädlich ist und eine schlechte Angewohnheit. Es ist wahrscheinlich etwas, das war ein bisschen vorzeitig eingeführt durch die qmake-Entwickler. Und es gibt starke Gegner zu seiner Verwendung. Die Nachteile sind diese:Daher schlage ich vor, ändern Sie Ihr Projekt-Datei wie folgt:
Diese Weise die Abhängigkeiten klar definiert sind. Sie können auch denken Sie an andere, kompliziertere Abhängigkeit Hierarchien, die es auf diese Weise möglich und absolut unmöglich, mit dem build-Reihenfolge.
Update: (21 Juni 2017)
Leider
qmake
ist nicht das beste tool, wenn es um größere Projekte mit tiefen sub-Projekt-Hierarchien. Gesehen Probleme mit größeren Projekten sind diese:Run qmake
nimmt eine extrem lange Zeit zum ausführenqmake
ist nicht in der Lage, korrekt zu berechnen, sub-Projekt Abhängigkeiten, die es notwendig macht, zu kompilieren, sub-Projekte separatGibt es vor allem zwei Möglichkeiten, um diese Probleme anzugehen:
qmake
Laufzeiten und kürzere Kompilierungszeiten. Aber auch dieser Ansatz kann nicht in Zeiten.cmake
. Ernst.Cmake
ist ein ausgereiftes Produkt und die Unterstützung in Qt Creator ist vergleichbar mitqmake
.Kommentar:
Wegen der bekannten Probleme mit
qmake
, die das Qt-Unternehmen hat bereits beschlossen, die Einführung einer neuen toolQBS
. Jedoch, dieses Werkzeug zu benutzen ist nicht so einfach wie es Aussehen mag auf den ersten Eindruck. Es gibt keine einfachen übergang vonqmake
zuQBS
, vor allem für komplexere Projekte. Die Javascript-ähnliche syntax derQBS
Sprache ist nicht leicht zu fassen und Dokumentation ist knapp.Gibt es IMHO nur zwei weitere tools zur Verfügung zu stellen, die Kaliber zu ersetzen
qmake
:CMake
, die bekannte build-tool.meson
, eine open-source-build-system soll beides sein: extrem schnell, und, noch wichtiger, so benutzerfreundlich wie möglich gestalten.Ok. Ich habe die Lösung gefunden.Fügen Sie einfach bestellt CONFIG und rezitieren Unterverzeichnisse in der richtigen Reihenfolge
Für mich funktionieren
jom
auf Windows undmake -jN
(mit N==Ncores/threads) auf NIX; lustige an der Sache ist, auch wenn die Verknüpfung (die *ist single-Thread-Regel) braucht viel Zeit, es bedeutet, es gibt eine Menge von Objekt-Dateien zu verknüpfen, zu kompilieren, was offensichtlich hat hatte viel mehr Zeit (== build-Zeiten sind schwer dominiert von der Verknüpfung); eine andere Sache, die mit bestellten configs größer ist reprodiciblity der baut (und einfacher Fehlerbehandlung, trotz der Dinge, die parallel für jedes Projekt)