[Solved]gcc mit qtproduziert plötzlich 10-mal so große Files

Verschiedenes zu Qt
Antworten
PhilippM
Beiträge: 41
Registriert: 11. Dezember 2005 14:02
Wohnort: Darmstadt
Kontaktdaten:

[Solved]gcc mit qtproduziert plötzlich 10-mal so große Files

Beitrag von PhilippM »

Servus,

ich hab hier ein dickes Problem.
Ich hab in letzter Zeit einige Updates in mein Linux-System eingespielt, dabei wohl auch qt und den gcc auf den neusten Stand gebracht.
Jetzt hat sich die Größe der libs und der executables in meinem Projekt grob verzehnfacht!
Natürlich kompiliere ich im release- und nicht im debug-mode, genau wie vorher.
Konkret:
Vorher: qt 4.3.1, gcc 4.2.1
lib: 1,7MB, exec 2MB
Nachher: qt 4.4.3, gcc 4.3.2
lib: 14,8MB, exec 20,7MB

Was ist hier schiefgelaufen? Muss man im neuen gcc den release-mode noch woanders einschalten als im .pro via
CONFIG+= release
CONFIG-= debug

Any ideas?
Zuletzt geändert von PhilippM am 22. Januar 2009 18:35, insgesamt 1-mal geändert.
www.vas-project.org
The Virtual Avionics Suite
for MSFS and X-Plane
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Ggf. ist Qt statisch kompiliert.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
PhilippM
Beiträge: 41
Registriert: 11. Dezember 2005 14:02
Wohnort: Darmstadt
Kontaktdaten:

Beitrag von PhilippM »

Christian81 hat geschrieben:Ggf. ist Qt statisch kompiliert.
okay, dass kann natürlich sein. Wie stelle ich das fest? Denn ich hab Qt nicht selbst kompiliert, ich habs über die Paketverwaltung meiner Distro eingespielt.

Ich denke, man sollte das statische linken den binaries ansehen können, oder? Sprich wenn ich ein ldd auf meine exe mache, sollte da keine QT-Bibliothek aufgeführt sein.

Wie kann ich ggf einstellen, ob ich gegen Qt statisch oder dynamisch linken will?
www.vas-project.org
The Virtual Avionics Suite
for MSFS and X-Plane
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Wenn Du die Distro-RPMs benutzt sind sie sicher nicht statisch.
Ggf. sind jetzt die Debug-Symbole mit drin - 'man strip' sollte da helfen.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
PhilippM
Beiträge: 41
Registriert: 11. Dezember 2005 14:02
Wohnort: Darmstadt
Kontaktdaten:

Beitrag von PhilippM »

Hey,
da scheinen wirklich debugsymbole drinzusein!
Ich hab
strip --strip-debug meinelib.a
gemacht und sie ist von 15MB auf knackige 1,5MB geschrumpft.

Jetzt meine Frage: Warum ignoriert mein Compiler oder mein qmake die Anweisung
CONFIG+=release
??? und warum ignoriert er das erst seit dem letzten Update?
www.vas-project.org
The Virtual Avionics Suite
for MSFS and X-Plane
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

release hat nichts mit Symbolinformationen zu tun. Sondern nur ob Optimierungen an sind oder nicht. Ich weiß dass man bei ./configure (zumindest in 4.4.3) mit angeben kann ob die Symbole mit drin sein sollen oder nicht - ggf. hat das Deine Distri mit aktiviert. Bei SuSE sind sie allerdings in einem separatem rpm-Paket.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
PhilippM
Beiträge: 41
Registriert: 11. Dezember 2005 14:02
Wohnort: Darmstadt
Kontaktdaten:

Beitrag von PhilippM »

[SOLVED]

Bei Suse 11.0 war ein Fehler in der g++.conf
Also unter /usr/share/qt4/mkspecs/common
steht in der g++.conf

Code: Alles auswählen

QMAKE_CFLAGS_RELEASE    += -O2 -march=i586 -mtune=i686 -fmessage-length=0 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -O2 -g
QMAKE_CFLAGS_DEBUG      += -g 	
Also beides mal -g
Das führt zu dem beobachteten Verhalten. Unter SuSe 11.1 ist das korrigiert, oder wenn man sich den kram selbst kompiliert (was ich dann getan habe) funktionierts auch.
www.vas-project.org
The Virtual Avionics Suite
for MSFS and X-Plane
Antworten