Seite 1 von 1
configure und mehrere Projekte/Größe der Binärdatei [gelöst]
Verfasst: 17. Februar 2008 20:13
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!
Verfasst: 17. Februar 2008 20:49
von upsala
Es gibt eine Bibliothek für mehrere Anwendungen und nicht für jede Anwendung und eine eigene Bibliothek.
Verfasst: 18. Februar 2008 15:10
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"?
Verfasst: 18. Februar 2008 15:11
von Christian81
Was spricht dagegen die libs einfach in andere Verzeichnisse zu installieren?
Verfasst: 18. Februar 2008 15:20
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!
Verfasst: 18. Februar 2008 16:30
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.
Verfasst: 19. Februar 2008 07:25
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

Verfasst: 19. Februar 2008 07:29
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.
Verfasst: 19. Februar 2008 08:27
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.
Verfasst: 25. Februar 2008 13:03
von oberschlingel
macman und christian81 - vielen Dank für eure Antworten! Die haben mir sehr weitergeholfen.
Verfasst: 12. März 2008 16:59
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:
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.