Seite 1 von 2

Qt Migration Framework

Verfasst: 16. Oktober 2008 08:07
von jona
Hallo!

Ich habe mir das Qt Migration Framework installiert.
Ich muss eine Applikation von MFC nach Qt portieren.
Ich arbeite mit der Qt VS Integration Version.
Jetzt wollte ich erstmal den Walkthrough von Trolltech durcharbeiten, aber sobald ich Header-Dateien (#include <qmfcapp.h>) des Migration Framework einbinde, bekomme ich einen Linker-Fehler:

1>Linking...
1>qtmfc.obj : error LNK2019: unresolved external symbol "public: static int __cdecl QMfcApp::run(class CWinApp *)" (?run@QMfcApp@@SAHPAVCWinApp@@@Z) referenced in function "public: virtual int __thiscall WindowsApp::Run(void)" (?Run@WindowsApp@@UAEHXZ)
1>.\Debug/QtMfc.exe : fatal error LNK1120: 1 unresolved externals

Kennt das jemand?
Die "Additional Include Directories" sind meiner Meinung nach richtig gesetzt.

Besten Dank im Voraus.

Verfasst: 16. Oktober 2008 10:11
von Christian81
Wohl nicht gegen die Qt-MFC libs gelinkt.

Verfasst: 16. Oktober 2008 10:55
von AuE
Was steht denn unter Projekteigenschaften -> Linker -> Allgemein ==> Zusätzliche Bibliotheksverzeichnisse bzw. hast du in unter eingabe die libs mitgegeben?

Zusätzliche Libs steht bei mir folgendes: (debug)

"$(QTDIR)\lib" ...

und unter eingabe:

qtmaind.lib QtCored4.lib QtGuid4.lib QtSqld4.lib

um ein bsp zu nennen.... weiß ja nicht wo deine lib drin steckt. auf jeden fall findet er sie ja nicht ;-)

Verfasst: 16. Oktober 2008 11:22
von jona
Stimmt, es wird wohl daran liegen, dass die lib fehlt.
Habe jetzt erstmal die den Pfad zu Qt\lib angegeben.

@Christian81:
Wo finde ich denn die Qt-Mfc libs?
Ich habe das Paket heruntergeladen und entpackt, aber ich finde dort keine lib-Dateien...

Danke schon mal!!

Verfasst: 16. Oktober 2008 11:29
von AuE
dann musst sie wohl noch bauen?! was sagt denn deine anleitung/beschreibung (Walkthrough)?

Sie sagt das hier:


Prerequisites
Before we can start using the Windows Migration framework, we must build the framework library, and build and link the MFC project with the Qt toolkit and the Windows Migration framework library.
und ne zeile tiefer steht wie....

Verfasst: 16. Oktober 2008 12:14
von jona
Ja, klar, die Anleitung hab ich schon gelesen.
Aber ich hab kein configure...

Da kommt die Fehlermeldung:
'configure' is not recognized as an internal or external command, operable program or batch file.

Ich hab den Aufruf im Ordner von qtwinmigrate gemacht.

Sorry, irgendwie steh ich wohl auf den Schlauch...

Verfasst: 16. Oktober 2008 12:22
von AuE
was hast denn für dateien in dem ordner? s
Change into the src directory and run the make tool (nmake for VC++, make for Borland) to build the library. The library qtwinmigrate.lib will be linked into QTDIR/lib.
das ist aber dann auch der grund warum alles weitere scheitert. ohne gebaute libs kann er net drauf zu greifen also unaufgelöste ext. verweise

Verfasst: 16. Oktober 2008 12:56
von jona
Jaja, hab mir schon gedacht, dass das Problem hier liegt...
Aber eben, komme mit der Anleitung nicht wirklich weiter?!

Also, von hier hab ich die .zip (neueste Version 2.7)Datei heruntergeladen:
http://trolltech.com/products/appdev/ad ... inmigrate/

Und in dem Ordner sind diese Dateien:
siehe
Ordner winmigrate.png
und dann noch src.png[/img]

Verfasst: 16. Oktober 2008 14:19
von jona
Also, bin jetzt schon einen Schritt weiter.
Die Anleitung ist wohl etwas veraltet...
Neu, wird jetzt die .pri Datei in die .pro Datei eingebunden.
Dazu muss aber zuerst aus dem .vcproj eine .pro Datei erstellt werden und zwar mit dem Befehl:
qmake -project -t vcapp

Dann kann die .pri Datei über Qt VS Integration eingebunden werden.

Hab aber immer noch den Fehler:
qtmfc.obj : error LNK2019: unresolved external symbol

Ach...!

Verfasst: 16. Oktober 2008 14:40
von AuE
hast du ein Qt (normales Qt installiert?) und wenn ja sind die variablen für die libs gesetzt?

hast du jetzt die lib erstellt?

Verfasst: 16. Oktober 2008 14:48
von jona
Ich habe Qt commercial 4.4.1 installiert.
Und die Variablen zu den Qt libs sind gesetzt.

Nein, die migration framework lib kann ich nicht erstellen...

Verfasst: 16. Oktober 2008 14:59
von AuE
geh mal in die commandozeile. wechsele in den src ordner. tipp da ein nmake und berichte ;-)

Verfasst: 16. Oktober 2008 15:23
von jona
Danke für deine Geduld :)

'nmake' is not recognized as an internal or external command, operable program or batch file.

Verfasst: 16. Oktober 2008 15:27
von AuE
die datei nmake ist aber vorhanden?

umgebungsvariablen gesetzt?

Verfasst: 16. Oktober 2008 15:36
von jona
Sorry, Umgebungsvariable fehlte...

Jetzt fehlt aber noch das makefile!