Qt 4.6 & Visual Studio 2008



  • Hallo.
    Ich wollt gestern mal Qt ausprobierne und mir das aktuelle SDK geladen. Dann habe ich gemerkt, dass, wenn ich das Ding mit Visual Studio benutzen will ich alles selben builden darf und das ein paar Stunden geht.

    Heute dann ausprobiert und dem Tutorial gefolgt:
    http://netindonesia.net/blogs/risman/archive/2009/04/02/qt-4-5-with-visual-studio-2008-vc-express.aspx

    configure hat geklappt, und nmake auch ein paar Stunden lang.. Aber irgendwann dann bekam ich Linkerfehler.

    QNetworkReplyHandler.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""public: virtual struct QMetaObject const * __thiscall WebCore::FormDataIODevice::metaObject(void)const "(?metaObject@FormDataIODevice@WebCore@@UBEPBUQMetaObject@@XZ)".

    QNetworkReplyHandler.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""public: virtual void * __thiscall WebCore::FormDataIODevice::qt_metacast(charconst *)" (?qt_metacast@FormDataIODevice@WebCore@@UAEPAXPBD@Z)".

    um mal die ersten beiden von ca. 10 zu nennen.

    Ich habe das aktuelle SDK (4.6), sowie Visual Studio 2008 Prof. und Windows XP mit SP 3.

    So, wies aussieht fehlt aber eh irgendwas anderes von QT selbst..

    Bin für Tipps dankbar. Ich geh jetzt joggen. 🙂

    btw:
    Warum bieten die nicht ne ein fertig kompiliertes Paket an?! War ja klar, dass es nach ein paar Stunden abbricht und ich dann alles iwie nochmal machen darf.. So kommt man echt nicht vorwärts.. -.-



  • Das SDK enthält AFAIK Qt vorkompiliert + den Creator.
    Die verwenden halt (aus lizenzgründen) MinGW (Glaube sogar den neuesten mit GCC-4.2, bin aber nicht sicher, hab kein Windows...)
    Ich würd mir auch nicht das sdk runterladen, sondern einfach nur die Sources.

    Die offizielle Installationsanleitung für Qt auf Windows kennst du ja sicher schon.

    Zu den angeführten Linker errors:
    Die Methoden werden automatisch erstellt durch das Q_OBJECT-Macro, und landen in einem eigenen File. Kann es sein dass bei dir irgendwelche PATHs noch nicht richtig eingestellt sind, oder QTDIR etc nicht ganz passen?
    Ich bin mir nicht sicher, aber glaub gelesen zu haben dass es u.U. bei Leerzeichen im Pfad zu Problemen kommt. Unter Linux kenn ich keine Leerzeichen im Pfad, kann also nix dazu sagen 😉



  • Ja, aber ich denke halt, dass es nicht gerade wenige VS User gibt, die Qt benutzen und das es da nix offizielles kompiliertes gibt finde ich einfach merkwürdig.

    Aber auf jeden Fall schon mal danke für die Tipps. Werde mal schauen, ob da was schief gelaufen ist. (Das blöde ist nur, dass ich dann erst wieder in ein paar Studnen sehe, ob es geklappt hat.. -.-)



  • Habe jetzt alles genau nach der offiziellen Anleitung gemacht und ich bekomme immernoch diese Linkerfehler..

    Irgendwie scheint alles von einem Networking Modul zu kommen..

    /EDIT:

    link /LIBPATH:"c:\Programme\Qt\2009.05\qt\lib" /LIBPATH:"c:\Programme\Qt
    \2009.05\qt\lib" /NOLOGO /DEBUG /DLL /MANIFEST /MANIFESTFILE:"obj/debug\QtWebKit
    d.intermediate.manifest" /VERSION:4.60 /OUT:..\..\..\..\lib\QtWebKitd4.dll @C:\D
    OKUME1\CHRIST1\LOKALE~1\Temp\nm37D.tmp
    Bibliothek "..\..\..\..\lib\QtWebKitd4.lib" und Objekt "..\..\..\..\lib\QtWeb
    Kitd4.exp" werden erstellt.
    QNetworkReplyHandler.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""pu
    blic: virtual struct QMetaObject const * __thiscall WebCore::FormDataIODevice::m
    etaObject(void)const " (?metaObject@FormDataIODevice@WebCore@@UBEPBUQMetaObject@
    @XZ)".
    QNetworkReplyHandler.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""pu
    blic: virtual void * __thiscall WebCore::FormDataIODevice::qt_metacast(char cons
    t *)" (?qt_metacast@FormDataIODevice@WebCore@@UAEPAXPBD@Z)".
    QNetworkReplyHandler.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""pu
    blic: virtual int __thiscall WebCore::FormDataIODevice::qt_metacall(enum QMetaOb
    ject::Call,int,void * *)" (?qt_metacall@FormDataIODevice@WebCore@@UAEHW4Call@QMe
    taObject@@HPAPAX@Z)".
    QNetworkReplyHandler.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""pu
    blic: virtual struct QMetaObject const * __thiscall WebCore::QNetworkReplyHandle
    r::metaObject(void)const " (?metaObject@QNetworkReplyHandler@WebCore@@UBEPBUQMet
    aObject@@XZ)".
    QNetworkReplyHandler.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""pu
    blic: virtual void * __thiscall WebCore::QNetworkReplyHandler::qt_metacast(char
    const *)" (?qt_metacast@QNetworkReplyHandler@WebCore@@UAEPAXPBD@Z)".
    QNetworkReplyHandler.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""pu
    blic: virtual int __thiscall WebCore::QNetworkReplyHandler::qt_metacall(enum QMe
    taObject::Call,int,void * *)" (?qt_metacall@QNetworkReplyHandler@WebCore@@UAEHW4
    Call@QMetaObject@@HPAPAX@Z)".
    QNetworkReplyHandler.obj : error LNK2019: Verweis auf nicht aufgelöstes externes
    Symbol ""protected: void __thiscall WebCore::QNetworkReplyHandler::processQueue
    dItems(void)" (?processQueuedItems@QNetworkReplyHandler@WebCore@@IAEXXZ)" in Fun
    ktion ""public: void __thiscall WebCore::QNetworkReplyHandler::setLoadMode(enum
    WebCore::QNetworkReplyHandler::LoadMode)" (?setLoadMode@QNetworkReplyHandler@Web
    Core@@QAEXW4LoadMode@12@@Z)".
    FrameLoaderClientQt.obj : error LNK2019: Verweis auf nicht aufgelöstes externes
    Symbol ""protected: void __thiscall QWebPage::unsupportedContent(class QNetworkR
    eply *)" (?unsupportedContent@QWebPage@@IAEXPAVQNetworkReply@@@Z)" in Funktion "
    "public: virtual void __thiscall WebCore::FrameLoaderClientQt::download(class We
    bCore::ResourceHandle *,struct WebCore::ResourceRequest const &,struct WebCore::
    ResourceRequest const &,class WebCore::ResourceResponse const &)" (?download@Fra
    meLoaderClientQt@WebCore@@UAEXPAVResourceHandle@2@ABUResourceRequest@2@1ABVResou
    rceResponse@2@@Z)".
    FrameLoaderClientQt.obj : error LNK2019: Verweis auf nicht aufgelöstes externes
    Symbol ""protected: void __thiscall QWebPage::downloadRequested(class QNetworkRe
    quest const &)" (?downloadRequested@QWebPage@@IAEXABVQNetworkRequest@@@Z)" in Fu
    nktion ""public: virtual void __thiscall WebCore::FrameLoaderClientQt::startDown
    load(struct WebCore::ResourceRequest const &)" (?startDownload@FrameLoaderClient
    Qt@WebCore@@UAEXABUResourceRequest@2@@Z)".
    ..\..\..\..\lib\QtWebKitd4.dll : fatal error LNK1120: 9 nicht aufgelöste externe
    Verweise.
    NMAKE : fatal error U1077: ""c:\Programme\Microsoft Visual Studio 9.0\VC\BIN\lin
    k.EXE"": Rückgabe-Code "0x460"
    Stop.
    NMAKE : fatal error U1077: ""c:\Programme\Microsoft Visual Studio 9.0\VC\BIN\nma
    ke.exe"": Rückgabe-Code "0x2"
    Stop.
    NMAKE : fatal error U1077: "cd": Rückgabe-Code "0x2"
    Stop.

    Die Fehlermeldung in ihrer ganzen Pracht.

    Sonst noch Ideen, woran es liegen könnte?





  • Wie wäre es damit?
    Funktioniert bei mir wunderbar!!!

    Michael



  • Ja, mittlerweilen habe ich schon auch gebuildetes Zeugs gefunden, aber ich will jetzt wissen, wo das Problem ist, wenn ich das selbst mache..

    Jetzt will ichs erst recht selbst machen. 😉

    btw:
    Mittlerweilen habe ich einen neuen Linkerfehler, der sich dazugesellt.

    Die Datei "winmm.lib" kann nicht geöffnet werden.

    Es ist zum Mäuse melken..



  • I had the same problem and it's easily fixed. Remove the following files and run nmake again:

    src/3rdparty/webkit/WebCore/tmp/moc/{debug,release}_shared/mocinclude.tmp

    src/script/tmp/moc/{debug,release}_shared/mocinclude.tmp



  • Danke. Das sieht gut aus. Bin wieder am builden, aber bis jetzt gabs keine Fehler mehr. Also ein gutes Zeichen. 🙂

    So. Nach ca. 5 Stunden ist nun alles gebuildet. Ein Example habe ich auch mal ausprobiert. Scheint zu funktionieren. 🙂

    Danke nochmal für den Tipp mit den Files!


Anmelden zum Antworten