2016-12-21 8 views
0

Es gibt mehrere Möglichkeiten, wie Sie Abhängigkeiten in Qt Creator umgehen können. Bei regulären Projekten gibt es eine Abhängigkeitsregisterkarte unter der Projektkonfiguration. Mit Subdirs Projekt gibt es einen .depends Parameter, den man jedem Projekt geben kann. DOCS jedoch Subdirs Projekt kann andere Subdirs Projekte enthalten und die Abhängigkeiten können somit über diese mit einem Projekt im Rahmen der Unterteilprojekt hängt von einem anderen überspannen, die in verschiedenen Sub-Sub-Projekt ist:Wie werden Abhängigkeiten im Subdirs-Projekt richtig konfiguriert?

Master Subdirs 
L--- Subdirs 1 
    L--- Project 1 
L--- Subdirs 2 
    L--- Project 2 //depends on Project 1 

Es gibt zwei Probleme mit diesem Setup:

1) kann man die Abhängigkeiten in Master Subdirs gesetzt, da weder Project 2 oder Project 1 ihm bekannt sind (in ähnlicher Weise für Subdirs 2). Die einzige Sache, die eingestellt werden kann, ist, ob Subdirs 2 von Subdirs 1 abhängt, aber das hilft nicht, wenn es gegenseitige Abhängigkeiten gibt.

2) Wenn Project 2 auf seinem eigenen Gebäude es nicht um ihre Abhängigkeiten im Subdirs Projekts kennt und da Projekte in Subdirs nicht regelmäßig Abhängigkeiten in Registerkarte Projekt festgelegt haben kann man es nicht automatisch aufbauen können und müssen entweder alles bauen oder bauen Abhängigkeiten manuell vor dem eigentlichen Projekt.

Gibt es Lösungen für diese Probleme? Nr. 1 kann gelöst werden, wenn kein Kind verwendet wird. Subdirs aber nein. 2 ist immer noch ein Problem.

Antwort

1

Ihre Einschätzung ist grundsätzlich richtig.

1) Sie können nur dann eingestellt Abhängigkeiten in einem subdirs .proDatei zwischen Projekten, die Kinder dafür sind SUBDIRS .proDatei, so Project 2 abhängig zu machen Project 1 benötigen Sie entweder Subdirs 2 abhängig von Subdirs 1 zu machen oder von der loszuwerden Untergeordnete Kinder.

2) Project 2 aufzubauen, während in Bezug auf die Abhängigkeit von Project 1 Sie entweder Master Subdirs zu bauen, oder, wenn Sie Project 1 und Project 2 als einzelnen Projekte in Qt Creator geöffnet, müssen Sie die Abhängigkeit in den Dependencies Registerkarte im Rahmen des Projektes konfigurieren Konfiguration für Project 2.

+1

Alternativ können Sie auch ein fortgeschritteneres Meta-Build-System wie 'CMake' verwenden, das, wie ich glaube, Abhängigkeiten von Build-Zielen verfolgt –

Verwandte Themen