Seite 1 von 1

qmake: neu linken bei neueren Bibliotheken

Verfasst: 8. Mai 2006 15:16
von hhopf
Hallo,

ich habe ein Projekt, das mehrere eigene Bibliotheken dazu linkt. Diese sind wieder als eigene QT-Projekte vorhanden.

Einfaches Beispiel:
Ein Projekt mit der Bibliothek (z.B. testlib)
und ein Projekt, um diese Bibliothek zu testen (z.B. libtest).
Wenn sich in testlib etwas ändert, dann muss libtest neu compiliert werden.
Ich arbeite mit Eclipse und Qt 4.1.1, hauptsächlich unter Linux.

Bei "Build Project" in Eclipse wird korrekt zuerst testlib compiliert, wenn sich dort etwas geändert hat. Anschliessend sagt der Compiler allerdings, dass für das Projekt libtest nichts zu tun ist.

Wie kann ich die Bibliothek so in das pro-File eintragen, dass das Programm bei Änderung einer Bibliothek (wenn diese vom Datum neuer ist als die Applikation) neu compiliert wird ?

Das mit den PRL-Dateien habe ich auch schon ausprobiert, funktioniert aber auch nicht.
Hier mal mein Pro-File:

Code: Alles auswählen

TEMPLATE = app
TARGET =
DEPENDPATH += . ../lib ../plugin
DESTDIR =
INCLUDEPATH += . ../ ../test6
CONFIG += qt debug link_prl
QT +=
LIBS += ../plugin/libfhedata_plugin.a \
                ../lib/libuniversaldata.a \
                ../lib/libgeoobj.a \
                ../lib/libmathprim.a \
                ../lib/libtest6.a \

# Input
HEADERS +=      fhedata_test.h
FORMS +=        fhedata_test.ui
SOURCES +=      main.cpp \
                        fhedata_test.cpp
Ich hoffe, es kann mir jemand helfen.

Gruß
Hubert Hopf

Verfasst: 8. Mai 2006 15:45
von patrik08
template subdirs

Zuerst wird sqlitebrowser/sqlite_source gebuildet und dann am ende sqlitebrowser

jeden diesen ordner hat auch eine pro datei .. die findet er dann selber...

Code: Alles auswählen

TEMPLATE    =	subdirs

SUBDIRS	=	sqlitebrowser/sqlite_source \
		sqlitebrowser

Verfasst: 8. Mai 2006 16:18
von hhopf
Danke für die Info.
Das werde ich gleich mal probieren. Ich habe allerdings bisher mit Subdirs noch nicht die gewünschten Ergebnisse erziehlt (allerdings in anderen Anwendungsfällen).
Außerdem liegen bei mir die Bibliotheken nicht im Unterverzeichnis der Applikation sondern sind eigene Projekte.

[Edit]
Habs gerade ausprobiert:
Auch hier scheint es nicht so zu funktionieren, wie sich das der Erfinder möglicherweise vorgestellt hat.
Das geänderte Projekt wird zwar neu compiliert, aber die Applikation trotzdem nicht neu gelinkt. Also alles wie vorher.
Trotzdem Danke für die Hilfe.
Vielleicht hat ja noch jemand einen Tipp.
[/Edit]

Gruß
Hubert Hopf

Verfasst: 8. Mai 2006 17:09
von patrik08
Baue dir ... ein shell script name.sh

Code: Alles auswählen

#!/bin/sh
cd  /dir/  
make distclean
qmake xxx.pro
make
cd /dir2
unsw..... ecc...
chmod 0750 ...

dann hast du immer alles frisch kompiliert mit nur einem befehl.....

Verfasst: 9. Mai 2006 08:25
von hhopf
Danke, darauf wirds wohl hinauslaufen.
Wenn es auch etwas umständlich ist.
Ich dachte, dass es vielleicht einfach einen Eintrag in der pro-Datei gibt. Aber da habe ich nichts gefunden.

Gruß
Hubert