Seite 1 von 2
Qt4 + Mingw + qmake: Program too big to fit in memory
Verfasst: 26. Mai 2008 12:42
von nando
Hi,
ich habe mein projekt auf qmake umgestellt.
wenn ich es jetzt unter windows mit mingw uebersetzte bekomme ich ein
ca. 4MB grosses executable. Wenn ich dieses dann starten will kommt immer die fehlermeldung: Program too big to fit in memory
auf der msyshell konsole.... woran kann das liegen? ich habe 3GB speicher und keine anderen programme laufen.....
gruss,
nando
Verfasst: 26. Mai 2008 12:58
von Christian81
Dein Executable ist möglicherweise kaputt. Oder Du allokierst wirklich zu viel Speicher was ich nicht glaube - startet es gar nicht oder dauert es erst eine Weile bis die Meldung kommt? Wenn es erst eine Weile dauert -> Memleak, ansonsten -> Executable kaputt.
Verfasst: 26. Mai 2008 13:45
von nando
also die meldung kommt direkt nach dem starten...
allerdings versteh ich nicht wie das executable kaputt gehen kann..
ich hab eben mal mingw32-make clean gemacht und dann neu gebaut..
jetzt bekomm ich den fehler:
The application failed to initialize properly (0x000000005). Click OK to terminate the application.
Mit meinen eigenen Makefile funktionierts... aber mit den qmake erzeugten nicht... hmmmmm ich weiss echt nicht weiter....
Verfasst: 26. Mai 2008 13:49
von Christian81
0xC00000005 kommt eigentlich in Verbindung mit msvc und manifest-Problemen zum Vorschein. Linkst Du noch gegen irgendwelche 3rdparty-Libs?
Verfasst: 26. Mai 2008 13:52
von nando
ja....
gegen qwt5.0.2
und eine eigene lib....
was kann ich denn da noch falsch gemacht haben?????
was ist denn dieses manifest?
sorry, komm halt aus der linux welt und bin unter windows noch nicht so fit....
Verfasst: 26. Mai 2008 13:58
von PeterLustig
Wurden diese Libs auch mit MingW kompiliert?
Verfasst: 26. Mai 2008 13:58
von Christian81
Aber qwt und deine eigene Lib sind doch wohl auch mit mingw gebaut denke ich.
Baue die auch nochmal neu. Was anderes fällt mir da gerade nicht ein. Ggf. mal mit gdb schauen was los ist.
Mit den manifest-Zeugs musst Du dich nicht wirklich beschäftigen wenn Du kein msvc benutzt - das ist so ne (imho) dämliche neue Erfindung von MS seit msvc2005.
Verfasst: 26. Mai 2008 14:08
von nando
okay,
also ich besorg mir mal die aktuellste version von qwt (5.1.1),
uebersetzte die neu und versuche es dann noch mal..
ich berichte dann mal,ob es geklappt hat...
danke schon mal...
Verfasst: 26. Mai 2008 14:26
von nando
mist.....
gleicher fehler..
also ich hab jetzt die aktuelleste qwt version neu uebersetzt mit
qmake
mingw32-make
und dann meine applikation... uebersetzt und linkt problemlos..
aber beim starten dann diese fehlermeldung.......... hmmmmm
Verfasst: 26. Mai 2008 14:35
von Christian81
Debugger, Applikation ohne qwt Testen, deine externe Lib entfernen usw. - geht denn z.B. der Qt-Assistant?
Verfasst: 26. Mai 2008 14:38
von Sephral
Bei Google findet man einige Tips zu dem Thema...
http://lists.trolltech.com/qt-interest/ ... 826-0.html
Üblicherweise wird geraten mit "depends.exe" zu schauen ob auch alle abhängiggen DLLs im Pfad liegen.
Verfasst: 26. Mai 2008 15:16
von nando
Danke fuer den Tip Sephral...
also ich hab mir das ganze mal mir dem dependecy walker angesehen und festegestellt, dass ihm wohl die msvcr90.dll fehlt.
das kann ich aber nicht ganz nachvollziehen, da ich ja nur mit mingw arbeite..
und auch aus der msysshell uebersetzte....
ich habe zwar vs2008 installiert, aber das sollte er eigentlich nicht mit einbeziehen.....
Verfasst: 26. Mai 2008 15:20
von Christian81
Hatte ich also doch recht.
Dann schau mal welche Lib die msvcrt90.dll genau braucht.
Verfasst: 26. Mai 2008 15:23
von Sephral
Installier' mal zum Spaß das Redist-Pack:
http://www.microsoft.com/downloads/deta ... laylang=en
Dann sollte alles funktionieren.
Es wäre möglich dass Dein Compiler das Windows Platform SDK vom VS 2008 erwischt hat. So würde sich die Abhängigkeit ergeben.
Mit installiertem VS 2008 sind mir auch einige merkwürdige Dinge passiert, das war auch der Grund warum ich es demletzt wieder entfernt habe (vorm nächsten Servicepack fass ich es nicht mehr an)

Verfasst: 26. Mai 2008 15:28
von nando
ohjeeee... jetzt hab ich eine vermutung...
ich hab glaube ich die ganze zeit gegen eine VS2008 uebersetzte Qt version gelinkt...
daher auch die msvc90.dll...
mist...
ich uebersetze jetzt noch mal alles.... dann sag ich bescheid ob es geklappt hat.....