Hallo Leute,
ich habe gelesen, dass ich die qt sdk nicht zwingend als debug build benötige, solange ich nur meinen eigenen Programm code debuggen möchte. Also habe ich mir QT einmal als shared release und einmal als static release gebaut.
Meine app verwendet im release mode QT static und im debug mode QT shared. Im debug mode erwartet meine app jedoch auch die debug dlls von QT, z.b. QtGuid4 oder QtCored4.
Ich denke mal ich muss irgendwas überzeugendes ins pro file schreiben oder ist die erste Aussage meines postings falsch und ich benötige zwingend die QT sdk im debug mode um auch meinen eigenen code debuggen zu können?
QT release build für app in debug mode
-
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Re: QT release build für app in debug mode
Wenn Du qmake benutzt und debug dann erwartet qmake auch, dass die Qt-Dlls im Debug-Mode vorliegen. Das liegt an Microsoft da man keine Debug- und Release-Dlls (und natürlich auch executables) mixen kann wegen einer unterschiedlichen Runtime. Frag M$ warum sie so einen Mist gemacht haben.
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
Re: QT release build für app in debug mode
Danke, ich habe die QT SDK shared release gegen eine shared debug getauscht.
Re: QT release build für app in debug mode
Komisch, ich hatte nie ein Problem damit release dlls zu debug executables zu linken und habe auch zur Laufzeit nie Probleme feststellen können. Weder bei Qt noch bei irgendwelchen anderen Bibliotheken.Christian81 hat geschrieben:Wenn Du qmake benutzt und debug dann erwartet qmake auch, dass die Qt-Dlls im Debug-Mode vorliegen. Das liegt an Microsoft da man keine Debug- und Release-Dlls (und natürlich auch executables) mixen kann wegen einer unterschiedlichen Runtime. Frag M$ warum sie so einen Mist gemacht haben.
-
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Re: QT release build für app in debug mode
Welcher Compiler? Sobald man verschiedene VisualStudio Runtimes benutzt (msvcrt & msvcrtd) gibts früher oder später Probleme. Reicht schon einen std::string von msvcrt an eine msvcrtd - Funktion zu übergeben, oder ein Filehandel. Deshalb nie mixen zumal die Debug-Runtimes sowieso nicht vertrieben werden dürfen.
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
Re: QT release build für app in debug mode
Ich benutze das Visual Studio seit VC6 (ja, ich weiß, damals war es nun wirklich kein C++ Compiler...) auch im Beruf. Es gab immer Bibliotheken, die nur als release Version zur Verfügung standen. Ich hatte nie ein Problem damit, irgendwas zu mischen (abgesehen von der Warnung "pdb not found; linking object as if no debug info"). Wenn Du wirklich Compilerversionen hören willst, dann unterstützt unsere C++ Schnittstelle derzeit die cl.exe Versionen 14, 15, 16 und 17 (also VS 2005-2012) mit der wir das auch täglich (sehr umfangreich automatisiert) testen (sowohl release als auch debug) und die sehr umfangreichen Tests (die ständig mehr werden) laufen problemlos durch (und ja... wir unterstützen auch alle halbwegs aktuellen gcc Versionen) [die 14er Version wird nur auf XP getestet, weil die auf Vista und Win7 eh nur Mist macht].Christian81 hat geschrieben:Welcher Compiler?
Ich nehme an, dass Du mir jetzt sagst, dass die Probleme dann eben später auftreten, aber ich bin da nach knapp 6 Jahren ohne Probleme (in dieser Richtung) recht zuversichtlich...Christian81 hat geschrieben: gibts früher oder später Probleme
P.S.: Es ist schon lange nicht mehr cool "M$" zu schreiben... Die wahren Bösen sind doch inzwischen Apple und Google...
-
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Re: QT release build für app in debug mode
Ich habe nicht gesagt dass es nicht geht - ich habe nur gesagt dass man msvcrt und msvcrtd - nicht mischen sollte denn sie sind inkompatibel. Erzeugt man ein Objekt/Handle /´(z.B. FileHandle) aus der einen Lib und gibt es der anderen und schon crash. Kannst auch google befragen.
Und ja - es ist M$ bei mir - da wird sich nichts dran ändern. Habe genug damit gearbeitet - kannst mir glauben.
Und ja - es ist M$ bei mir - da wird sich nichts dran ändern. Habe genug damit gearbeitet - kannst mir glauben.
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
Re: QT release build für app in debug mode
Sollte auch nicht das problem sein ...Komisch, ich hatte nie ein Problem damit release dlls zu debug executables zu linken und habe auch zur Laufzeit nie Probleme feststellen können. Weder bei Qt noch bei irgendwelchen anderen Bibliotheken.
Unterschiedliche runtimes in ner exe und in ner dll(qt-dlls) nutzen ist zwar unschoen, funktioniert aber doch ...
wenn deine exe 2 runtimes wegens einer lib anzieht (der compiler meckert zwar, aber solange die symbole nicht kollidieren) auch unschoen, geht aber unter umstaenden auch.
Da debug und release meist unterschiedliche symbolnamen generieren, funktionierts.
/ Edit, noch mal geschaut
Neee, beim M$ - Compiler erzeugens zumindest gleiche Symbole (ohne zutun), also gehts da nicht 2 runtimes ohne weiteres zu linken ...
Aber in nem debug Build die relase lib der qt, und damit auch die release dlls anzuziehen, funktioniert auf anhieb.
D.h. die qt lib und dll exportieren ned wirklich wilde c++ sachen .... wahrscheinlich doch eher nur c-zeugs
nur schoen ist es nicht !
Ciao ...
P.S.S.:
Stimmt, aber ändert das was an den (wahren) Absichten von M$ ? Nur weil andere nu ... mehr Erfolg ... haben ?P.S.: Es ist schon lange nicht mehr cool "M$" zu schreiben... Die wahren Bösen sind doch inzwischen Apple und Google...