configure und mehrere Projekte/Größe der Binärdatei [gelöst]

Verschiedenes zu Qt
Antworten
oberschlingel
Beiträge: 85
Registriert: 11. April 2006 09:25
Wohnort: Berlin

configure und mehrere Projekte/Größe der Binärdatei [gelöst]

Beitrag von oberschlingel »

Hallo,

ich hätte mal eine grundsätzliche Frage zu Qt:

Ich möchte mit einer Qt-Installation mehrere Projekte verwalten.
Wenn ich Qt konfiguriere, kann ich ja unterschiedliche Parameter angeben, die bei mir je nach Projekt unterschiedlich wären.
Nun benötigt z.B. das eine Programm eine SQLite-Datenbank, ich muss deshalb "configure -qt-sql-slite" bei der Qt-Konfiguration verwenden. Wenn ich nun aber ein anderes Projekt kompiliere, das gar keine Datenbank verwendet:

1. Wird dann die ausführbare Datei größer, als wenn ich Qt ohne Sqlite konfiguriert hätte?

2. Muss ich Qt jedesmal neu konfigurieren, wenn ich an einem anderen Projekt arbeite? (das dauert doch ewig!)

Somit stellen sich für mich dann auch noch die Fragen:

3. Ist es sinnvoll, beim Konfigurieren von Qt "configure" mit Parametern zu versehen, die gezielt bestimmte Funktionen abschalten, die man im aktuellen Projekt nicht benötigt (z.B. Jpg-Unterstützung)? Oder ändert sich dann letztlich nichts an der ausführbaren Datei?

4. Muss ich wirklich immer 1,5 Stunden warten, bis "make" nach dem "configure"-Befehl (mit "fast"-Parameter) durchgelaufen ist, oder kann ich darauf auch verzichten?

Vielen Dank für eure Antworten!
Zuletzt geändert von oberschlingel am 12. März 2008 16:59, insgesamt 2-mal geändert.
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Es gibt eine Bibliothek für mehrere Anwendungen und nicht für jede Anwendung und eine eigene Bibliothek.
oberschlingel
Beiträge: 85
Registriert: 11. April 2006 09:25
Wohnort: Berlin

Beitrag von oberschlingel »

Danke für die Antwort upsala, aber irgendwie bringt sie mich nicht viel weiter.
Natürlich nur eine Bilbiothek. Aber wie ist diese konfiguriert?

Wie gehst Du denn vor, wenn Du ein Projekt mit shared-Libraries kompilieren willst und dann ein anderes Projekt mit static-Libraries? Führst Du dann nicht erneut "configure" mit unterschiedlichen Parametern im Qt-Verzeichnis aus und dann "make"?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Was spricht dagegen die libs einfach in andere Verzeichnisse zu installieren?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
oberschlingel
Beiträge: 85
Registriert: 11. April 2006 09:25
Wohnort: Berlin

Beitrag von oberschlingel »

Auf deutsch mehrere Qt-Verzeichnisse, die unterschiedlich konfiguriert sind?
Und bringt es denn nun was, gezielt bestimmte Sachen bei configure zu deaktivieren (z.B. Jpg-Unterstützung), wenn man es nicht braucht? Welche Vorteile habe ich davon genau?

Danke!
Und ich würde mich riesig über eine etwas ausführlichere Antwort auf obige Fragen (1-4) freuen, denn hier rätsel ich schon länger!
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Warum willst du alle deine Projekte statisch linken?

1. Ja, die Bibliothek sollte kleiner werden
2. Du wolltest ja unbedingt statisch linken.
3. Sie wird kleiner (wenn du statisch linkst)
4. Ja, denn ohme kompilieren wird das nichts. Und das Projekt muß neu kompiliert werden, da du die Abhängigkeiten geändert hast.
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

oberschlingel hat geschrieben:Auf deutsch mehrere Qt-Verzeichnisse, die unterschiedlich konfiguriert sind?
Korrekt. Ich habe gerade mal nachgezählt und finde 12 Qt-Versionen auf meinem Rechner, drei 3er und neun 4er. Bei den 4er gibt es statische und shared compilierte Versionen und das umschalten geschieht einfach über QTDIR. Und was die übrigen configure-Flags angeht, wenn ich mal etwas brauche, dann bleibt das in zukünftigen Versionen drin. Ich nutze nicht eine QNetwork.dll mit OpenSSL und eine ohne, um ein paar Bytes zu sparen. Wer will das auch verwalten.

Um deine Fragen zu beantworten:
1. keine Ahnung. Kann auch sein das sich das nur auf die QSql auswirkt.
2. Nein.
3. Nein.
4. schnellerer Rechner, schnelleres make :-)
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

macman hat geschrieben: und das umschalten geschieht einfach über QTDIR
Benutzt Du die kommerzielle Version inklusive VS-Plugin? Ansonsten hat QTDIR doch nicht mehr wirklich Asuwrikungen. Der Aufruf des entsprechenden qmake setzt die Pfade unabhängig von QTDIR.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Christian81 hat geschrieben:Benutzt Du die kommerzielle Version inklusive VS-Plugin?
Ja, aber das hat irgendwo ne Macke, funktionierte schon mal besser. Es hat mal gereicht in VS die Qt-Version umzuschalten, aber das tut nicht mehr. Jetzt muss ich QTDIR anpassen, sonst geht es nicht. Ärgerlich ist, das man dazu VS neu starten muss.
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
oberschlingel
Beiträge: 85
Registriert: 11. April 2006 09:25
Wohnort: Berlin

Beitrag von oberschlingel »

macman und christian81 - vielen Dank für eure Antworten! Die haben mir sehr weitergeholfen.
oberschlingel
Beiträge: 85
Registriert: 11. April 2006 09:25
Wohnort: Berlin

Beitrag von oberschlingel »

Dank der Antworten hier und weil ich es mittlerweile selbst ausprobiert habe, möchte ich noch einmal zusammenfassend sagen:

1. Für jedes Projekt habe ich nun ein eigenes Qt kompiliert, angepasst an die Anforderungen der jeweiligen Software. Das macht Sinn. Man muss sich vorher überlegen, was das Projekt benötigt und dann konfiguriert man sich eine extra Qt-Version mit den entsprechenden Parametern.

2. Bei configure auch gezielt Parameter einzusetzen, die bestimmte Funktionen abschalten, lohnt sich auf jeden Fall. Zumindest beim statischen Linken kann ich sagen, dass die ausführbare Datei dann deutlich kleiner wird.

Beispiel:

Früher: exe-Datei 6,8 MB gross und Qt wie folgt konfiguriert:

Code: Alles auswählen

-release 
-static 
-fast
-qt-sql-sqlite 
-qt-libpng 
Jetzt: exe-Datei 4,4 MB gross und Qt wie folgt konfiguriert:

Code: Alles auswählen

-release 
-static 
-fast 
-qt-sql-sqlite 
-qt-libpng 
-no-exceptions 
-no-qt3support 
-no-gif 
-no-libmng 
-no-libtiff 
-no-libjpeg 
-no-dsp 
-no-vcproj 
-no-openssl 
-qt-style-plastique
Ich markiere hiermit den Thread als "gelöst" und danke noch einmal für die Antworten.
Antworten