Qmake Projektabhängigkeiten (verknüpfte Bibliotheken)
Habe ich ein Projekt, dass links zu einer Reihe von shared libraries.
Können sagen, Projekt richtet sich auf die Projekte B und C
Ideal, ich will zu verhängen, um die folgenden Abhängigkeiten in meiner Projekt-Datei:
- Projekt neu Ein, wenn entweder B oder C umgebaut wurde seit dem letzten mal Ein Projekt gebaut wurde
- Verwenden Sie die Ausgabe für die entsprechende Konfiguration (z.B. wenn Ein Projekt im debug-Modus, dann verwenden Sie die debug-Versionen der libs für Projekt B und C)
Weiß jemand wie ich kann ausdrücklich solche Abhängigkeiten in meiner Projekt-Datei?
InformationsquelleAutor der Frage Stick it to THE MAN | 2010-02-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nach ziemlich viel Frust mit qmake, die ich gefunden habe, was ich denke, ist die Antwort auf Ihre Frage. Wenn nicht, dann habe ich gelernt, die Art und Weise, dass ich qmake verwenden, bis ich etwas besseres, denn das ist noch ein bisschen hässlich. Ich habe ein demo Projekt, das ist meine directory-Struktur (Dateien haben Erweiterungen, Ordner nicht):
Beginnen wir mit
MyProj.pro
alssubdirs
Projekt, das ist der Schlüssel zu tun, was Sie Fragen. Im Grunde, statt abhängig von anderen Projekten, um anzugeben, debug/release und allen möglichen anderen Kram, den Sie gerade legen Sie es auf der einen qmake-Datei. Es nicht lassen, Sie machen nur das, was Sie brauchen, aber es ist die beste Lösung, die ich gefunden habe. Hier sind die Inhalte:myproj-core.pro
ist ein typisches shared-object-Bibliothek:myproj-app.pro
ist-consumer-Anwendung, wo die kleinen wieder aufzubauen-wenn-benötigt trick ist:Ich hoffe das löst dein problem, da ich weiß, dass es gelöst mine!
BEARBEITEN: ich habe eine Datei, die speziell für die Bau-Abhängigkeiten für mich, ich speichern Sie es in einem Geschwister-Ordner von jedem meiner Projekte (Kind des MyProj in die Verzeichnis-Struktur oben angegeben) genannt
dependencies.pri
:Also an der Unterseite aller verbrauchenden Anwendungen, ich kann fügen Sie die Zeilen:
Diese geht davon aus, dass Sie kopieren Sie die Bibliotheken auf einen freigegebenen Speicherort und/oder zu bewegen, wie gebraucht, so dass meine Funktion funktioniert möglicherweise nicht für Sie, aber ich dachte, ich würde hinzufügen, um die Lösung.
InformationsquelleAutor der Antwort Travis Gockel
Verwende ich die folgende Lösung. Dies funktioniert ohne die Benutzung eines extra .pro-Datei mit Unterverzeichnis template.
InformationsquelleAutor der Antwort Jeroen
Versuchen Sie, etwas ähnliches zu diesem code, um Ihre pro-Datei:
Dann müssen Sie geben Sie die Abhängigkeiten für jede Konfiguration:
InformationsquelleAutor der Antwort rpg
Ich hatte dieses problem bei der Umgestaltung meinem Projekt, nachdem ich umgezogen in eine neue DLL (pqXDot) eine wiederverwendbare Klasse (von pqGraphviz).
Nach hinzufügen einer neuen DLL in mein Projekt, und das hinzufügen die neue DLL-Verweis auf andere DLL und Anwendungen, die es brauchte, hatte ich in main .pro:
und die Wiederherstellung verursacht einen linker-Fehler, weil pqGraphviz, die DLL wird umstrukturiert, nicht finden können pqXDot, die neue DLL.
Es stellt sich heraus, es ist ausreichend, um die Reihenfolge der UNTERVERZEICHNISSE Liste, bewegen Sie den erforderlichen DLL, bevor die abhängige:
InformationsquelleAutor der Antwort CapelliC
Für diejenigen, die interessiert sind, in eine Vorlage für Ihre Qt/QML-Projekt, die ich veröffentlicht habe, ein template auf GitHub QmlAppTemplate.
InformationsquelleAutor der Antwort lucab0ni