Seite 1 von 1

Projekt auf mehrere Verzeichnisse aufteilen?

Verfasst: 29. November 2007 17:05
von rage
Ich habe ein mittlerweile großes Projekt, wobei ich allerdings alle Klassen und Header in einem Verzeichnis habe.
Ich würde gerne in etwa so eine Struktur haben:

Code: Alles auswählen

- Samples
  - Sample1
  - Sample2
- API
  - Paket1
  - Paket2
Wie bekomme ich das hin? Momentan habe ich Probleme die passenden .pro files zu schreiben.
In dem Verzeichnis Samples sollen sich Beispielanwendungen befinden, die Schnittstellen der API verwenden, die auf mehrere "Pakete" aufgeteilt ist.

Verfasst: 29. November 2007 17:19
von dhcase
In jedes Verzeichnis ein .pro-File, welches das entsprechende Paket erstellt. Die Pakete können z.B. Libs sein, die zu einer Anwendung zusammengelinkt werden. Im Wurzelverzeichnis kannst du eine .pri anlegen, die projektübergreifende Einstellungen enthält und in jedem .pro eingebunden wird.
Alle Projekte erstellst du mit qmake -r, wenn du VS verwendest kannst du dir mit qmake -r -tp vc eine .sln erstellen lassen, die alle Unterprojekte enthält.

Verfasst: 29. November 2007 17:23
von rage
Ich habe in den Unterverzeichnisse .pro Files. Allerdings bekomme ich beim kompilieren die Fehlermeldung "undefined reference to...", liegt das daran, dass ich kein .pri File habe? Das kannte ich bisher nicht und weiß nicht was ich damit zu tun habe.

Verfasst: 29. November 2007 17:38
von rage
ah... jetzt. Ok, ein include() zu dem "Parent" .pro file hats getan :D

Verfasst: 30. November 2007 00:00
von glHomeless
Hi,

Kannst du genauer schreiben, was du nun geändert hast. Kannst du vielleicht auch dein .pro files zeigen, insbesondere deine "Parent" .pro file !

Danke

Verfasst: 30. November 2007 00:12
von rage
Mit "Parent" .pro file meinte ich die Datei, die mir diese Struktur aufbaut:
(Die .pro Datei sieht wie eine ganz normale .pro Datei aus - abgesehen davon, dass ich es in .pri umbenannt habe)

Code: Alles auswählen

- API 
  - Paket1 
  - Paket2 
Nun will ich aus dem Sample-Anwendnugen auf die Klassen der API zugreifen. Hierfür behalte ich deren .pro File bei, füge aber ein include des oben genannten .pro files ein:

Code: Alles auswählen

include(../../QMaps.pri)

DESTDIR = bin
TARGET = BusPlan
DEPENDPATH += . ../../src
INCLUDEPATH += . ../../src

# Input
HEADERS += src/busplan.h
SOURCES += src/busplan.cpp ./src/main.cpp

QT += network
QT += debug
Funktioniert so, ich finde es allerdings nicht so schön, denn wenn ich nun in den Sample Anwendungen ein qmake -project aufrufe zerschießt es das include und man müsste es von Hand wieder einfügen...

Weiß jemand ob es eine bessere Lösung gibt?