Seite 1 von 1

Qt und MS VSC++ Express

Verfasst: 22. Juli 2009 21:19
von NothingSpecial
Hi,

ich versuche gerade mein Projekt, welches mit dem QtCreator erstellt wurde, kompiliert und läuft auf Visual Studio zu kompilieren. Naiv wie ich war dachte ich, es reicht die Bibliotheken zu verlinken und fertig, aber es funktioniert nicht. Zuerst wollte ich die Quelldateien von Qt nehmen, aber da müsste ich wohl die ganzen Qt Quelldateien zum Projekt hinzufügen oder irgendwas in die Richtung. Dann habe ich versucht die .dlls aus dem bin Ordner zu nehmen, da bekomme ich folgenden Fehler:
QtCored4.dll : fatal error LNK1107: invalid or corrupt file: cannot read at 0x308
Im Internet findet man dazu, dass man .lib Dateien verwenden soll. Die habe ich aber nicht. Wo bekomme ich die her oder wie benutze ich die dlls richtig?


Grüße,

NothingSpecial

Visual Studio C++ 2005
Qt 4.5.2

Verfasst: 22. Juli 2009 21:29
von Christian81
Hast Du Qt mit MSVC compiliert? Man kann keine Dlls von MSVC mit MinGW und umgekehrt benutzen.

Verfasst: 22. Juli 2009 22:10
von NothingSpecial
oha dann versuche ich das mal.
(da gibt es sogar eine configure.exe im Stammverzeichniss des Libary Ordners...)

Hast du eine Erklärung dafür, warum die dlls nicht kombatibel sind, die müssten doch eigentlich "genormt" sein? Ich bin ja gern geneigt MS die Schuld in die Schuhe zu schieben, aber vielleicht gibt es ja auch Abweichungen bei mingw...


Grüße,

NothingSpecial

Verfasst: 22. Juli 2009 22:25
von Christian81
Die C++ ABI ist nicht genormt. Die C-ABI schon, dshalb kann man auch teilweise C-Libraries von verschiedenen Compiliern mischen.
Hier die Installationsanweisung: http://doc.trolltech.com/4.5/install-win.html

Verfasst: 22. Juli 2009 22:48
von NothingSpecial
Man ich dreh gleich durch... mir sagt die MS VC2005 prompt, er findet die windows.h nicht!
Ich installier mal das WindowsSDK, keine Ahung ob das hier drauf ist. Warum gibt es keine kompilierten Versionen :(

Verfasst: 22. Juli 2009 22:55
von Christian81
Weil MSVC in der OpenSource-Version nicht offiziell unterstützt wird und weil es so viele verschiedene MSVC-Versionen gibt.

Verfasst: 22. Juli 2009 23:29
von NothingSpecial
Tjaa,

leider findet er trotz des Windows SDK die windows.h nicht. Gibt es dafür eine einfach Erklärung, oder mit welchen Informationen kann ich zur Aufklärung beitragen? Sie ist aber vorhanden, vielleicht muss ich sie irgendwo in eine Umgebungsvariable eintragen.

Verfasst: 23. Juli 2009 06:44
von Christian81
Natürlich muss man dem Compiler sagen wo er zu suchen hat -> LIB und INCLUDE Umgebungsvariablen. Sollte aber auch in der README zum PSDK drinstehen. Bei mir gibts da sogar ne setenv.cmd welche die Variablen korrekt setzt...

Verfasst: 23. Juli 2009 17:48
von NothingSpecial
Nachdem ich schon fast verzweifelt bin habe ich den Fehler gefunden. Ich hatte es zwar alles eingetragen, leider aber mit Space zum vorherigem Eintrag, dadurch hat er den Pfad nicht gefunden...
Nach fast 2 Stunfen kompilieren scheint es jetzt zu gehen :)

Danke für die Hilfe

Verfasst: 24. Juli 2009 05:06
von NothingSpecial
Denkste nach weiterem hin und her konnte er kompilieren, aber ohne Debugger...

Da habe ich dann aufgeben und mir die Professional besorgt. Dann Qt kompiliert, wie hier beschrieben. Allerdings mit der msvc2008 option, dass Addin installiert, welches einem das Importieren der .pro Files erleichtert und auch das moc übernimmt.

Jetzt steht nur noch eine große Frage im Raum... kann ich vielleicht irgendwie mit dem msvc compiler eine Bibliothek erstellen, die ich mit dem minGW gcc benutzen kann? Das wäre am Ende wahrscheinlich die Optimallösung für mein Problem, dann brauche ich das MS Zeug nicht so lange (und hätte mir wahrscheinlich auch zwei Nächte schlaf gönnen können...).

Grüße,

NothingSpecial

Verfasst: 26. Juli 2009 20:51
von Christian81
NothingSpecial hat geschrieben: Jetzt steht nur noch eine große Frage im Raum... kann ich vielleicht irgendwie mit dem msvc compiler eine Bibliothek erstellen, die ich mit dem minGW gcc benutzen kann?l
Was war an meiner Aussage so unverständlich??