Mehrere Targets in einem .pro-File

Alles rund um die Programmierung mit Qt
Antworten
Paddre
Beiträge: 30
Registriert: 10. Februar 2009 09:46

Mehrere Targets in einem .pro-File

Beitrag von Paddre »

Moinmoin.

Ich habe 3 Projekte, von denen eines ein QT-Projekt ist. Die anderen beiden Projekte werden einfach mittels gcc und Makefile kompiliert.
Aus allen 3 Objekten wird je ein .so (shared object, das Linux-pendant zu Windows-DLLs) erzeugt.

Da ich alle Projekte in einem Zweig in unserem Versionierungssystem (Clearcase) habe möchte ich dass ich alle Projekte mit einem einzigen Makefile kompilieren kann.
Dieses soll mithilfe von qmake generiert werden können. Alle Sourcen liegen in einem Ordner (KEINE Subdirectories) und das soll auch so bleiben.

Wie konfiguriere ich nun mein Projectfile so, dass alle 2 Projekte (das QT-Projekt hat viele Dateien, die anderen beiden jeweils nur eine) mit einem einzigen "qmake"-Aufruf ein einem einzigen Makefile landen, welches ich dann einfach mit "make" auslesen und die 2 .so-Files bauen kann?

Ich habe bereits recherchiert und 3 verschiedene Lösungsansätze ausprobiert.

http://stackoverflow.com/questions/2259 ... n-qt-qmake --> Es ließ sich kein projekt kompilieren (egal wie ich qmake aufgerufen habe), die .pri-file-Version funktioniert mal gar nicht ;)

Fehlermeldung bei Aufruf von "qmake":

Code: Alles auswählen

g++  -o projects     -L/usr/lib/ -L/usr/lib/qt3/lib/ -L/usr/X11R6/lib/ -lqt-mt -lXext -lX11 -lm
/usr/lib/gcc/i586-suse-linux/4.1.0/../../../crt1.o: In function `_start':
init.c:(.text+0x18): undefined reference to `main'
collect2: ld returned 1 exit status
make: *** [projects] Fehler 1
Ich kenne keine einzige der Dateien ^^

wenn ich das Makefile mit "qmake projects.pro CONFIG+=ProjectA" generiere findet er keine inkludierten Files mehr.

http://lists.trolltech.com/qt-interest/ ... 169-0.html --> qmake schrie nach Unterordnern (auch wenn der erste Beantworter das Gegenteil meint), Mit message 4 konnte ich irgendwie nichts anfangen

Ist das was ich möchte überhaupt möglich? Oder schert qmake alles immer über einen Kamm weil es davon ausgeht, dass alle Projekte QT basiert ist?

Auszug aus dem Pro-File (so wie ich mir das vorstelle)

Code: Alles auswählen

projectA {
TEMPLATE = lib
INCLUDEPATH += . .. /usr/include/X11 
LIBS += -L/usr/local/lib -losgViewer
OBJECTS_DIR = .obj
HEADERS += projA.h
SOURCES += projB.cpp

DEFINES += QT_DLL XP_UNIX=1 MOZ_X11=1 DEBUG
QMAKE_POST_LINK = cp libbbx.so.1.0.0 /usr/lib/browser-plugins/libbbx.so
CONFIG += qt warn_on debug dll thread
QT += opengl
}

projectB {
TEMPLATE = lib
INCLUDEPATH += . /usr/include/X11
LIBS += -L/usr/local/lib -losgDB
OBJECTS_DIR = .obj

SOURCES += projB.cpp

DEFINES += MOZ_X11=1
CONFIG += warn_on debug dll thread
}    
qmake aufrufen, make fertig sind 2 libs (so der Plan)

Infos:
Betriebssystem: openSuSE 11.2
Sprache: C++
QT-Version: 4

Hoffe das reicht an Erklärung ;) vielleicht kann mir einer helfen, und ich hab was falsch konfiguriert oder so.

Gruß
Paddre
Antworten