Seite 1 von 1

Linkerfehler bei Qt 4.2.2 mit MS Visual Studio 2005 Prof.

Verfasst: 9. Februar 2007 18:33
von mathies
Hallo Leute :D

wie ich beim Durchstöbern festgestellt habe, bin ich nicht der einzige mit solchen Problemen, nur leider helfen mir die bisherigen Postings nix.

Ich habe nach der Anweisung von Volker Wiendl mein QT (freie Version) in Visual C++ "eingebetet" und ne kleine GUI bestehend aus einem Widget, 2 Knöpfen und einem Textlabel im Designer dazu gemacht um es zu testen.

Trotzdem bekomme ich beim Übersetzen Linkerfehler mit u. a. folgendem Typ:
Fehler 17 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: virtual __thiscall QWidget::~QWidget(void)" (__imp_??1QWidget@@UAE@XZ)" in Funktion ""public: virtual __thiscall GuiMainMenu::~GuiMainMenu(void)" (??1GuiMainMenu@@UAE@XZ)". GuiMainMenu.obj
Ich habe keine Ahnung woran das liegen könnte, folgendes hab ich umgesetzt:
  • -Patch für QT wurde installiert
    -QT für MVC konfiguriert
    -SP1 für VC++ ist nicht installiert
    -das lib-Verzeichnis von QT habe ich bei zusätzliche Bibliotheksverzeichnisse eingefügt
    -die libqtcore4.a und die libqtgui4.a habe ich bei zusätzliche Abhängigkeiten eingefügt
    -den MOC und das ui-File eingebunden wie in der Anleitung beschrieben (läßt sich auch seperat kompilieren)
Kann mir da vielleicht jemand helfen?! Es scheint echt nur am Linken zu liegen aber ich hab keine Ahnung warum der die angegebenen Libs nicht will - wenn ich die zwei Libs weg lasse kommen nämlich die gleichen Linkerfehler. Finden tut er die Datein aber...

Danke schon mal im voraus.

Grüßle,
Matthias

Verfasst: 9. Februar 2007 19:01
von BartSimpson
Was mir sofort auffällt, ist "-die libqtcore4.a und die libqtgui4.a.." Diese Dateien stammen aus der Linuxwelt und demzufolge aus dem mingw Compiler.
Dann muste Qt für den msvc2005 und nicht für den msvc übersetzen, falls die VC 2005 nimmst.Hier ein Crashkurs:)
1. Windows SDK (knapp 2GB) laden und installieren
2. VS 2005 laden und Installieren
3. Qt laden(aber die .zip Version) und entpacken
3. Pfade anpassen(steht im Qt Patch)
4. Kommandozeile vom VC 2005 öffnen
5. Qt patchen konfigurieren und übersetzen lassen.

Verfasst: 9. Februar 2007 19:08
von mathies
Hallo,

danke für Deine schnelle Antwort, ich probier das mal. Ich hatte bisher nur mit dem DevC++ gearbeitet und der hatte mit den *.a Bibliotheken keine Probleme.

Grüßle,
Matthias

Verfasst: 9. Februar 2007 19:11
von BartSimpson
DevC nimmt ja den mingw Compiler und dieser wiederum die .a Dateien aus der Linux Welt:)

Verfasst: 10. Februar 2007 10:20
von mathies
Hallo,

ich kann jetzt alles übersetzen. Lag wirklich an den *.lib's - ich Dödel hab vergessen das nmake nach dem qconfigure zu machen, dieser Hinweis stand allerdings auch net in der Anleitung oder das qconfigure hat sich geändert.

Starten kann ich es allerdings nicht weil mir ne coredll.dll fehlt, weiß jemand was mir da fehlt oder welche Einstellung falsch ist (da ich weder bei google noch hier irgendetwas dazu finde und auch diese Datei nicht habe)? Das Microsoft SDK habe ich allerdings nicht extra drauf, da das wohl bei dem .Net Framework dabei ist.

Grüßle,
Matthias

Verfasst: 10. Februar 2007 11:57
von BartSimpson
Du meinst QtCore4.dll?
Zum testen startest du das auch von der Konsole.

Verfasst: 10. Februar 2007 12:17
von mathies
Nein, da steht coredll.dll wurde nicht gefunden und diese Datei gibt es bei mir auch nirgens...

Ich mach nochmal alles neu :(

Verfasst: 10. Februar 2007 14:11
von mathies
Hallo,

in der neuen Version der Anleitung zum integrieren von Qt in VC 2005 ist genau mein Fehler beschrieben. Liegt an einer so genannten Manifesteinstellung.

So, dann übersetze ich mal weiter QT und hoffe, dass mit der geänderten einstellung alles klappt.

Also wer auch den Fehler hat, dann ladet euch das qt2005.pdf herunter, da ist alles fein beschrieben. Ich hatte bisher nur das für die 2003er Version. Hat auch alles gepasst bis auf diese Kleinigkeiten am Ende und das halt das nmake nicht so da steht :)

Grüßle und ein schönes WE,
Matthias