Seite 1 von 1

Qt 4.1.2 für msvc.net: Kompilierung schlägt fehl

Verfasst: 10. Mai 2006 13:22
von Dywod
hi, ich habe bei der Installation von Qt 4.1.2 (qt-win-opensource-src-4.1.2.zip) mit dem VC-Patch (acs4qt412p1.zip) und Visual Studio .NET (mit SP1) folgendes Problem: Wenn ich es aus der .Net Befehlszeile (also mit den angepassten PATH Direktiven) kompilieren versuche, schlägt dies nach einiger Zeit fehl:

Code: Alles auswählen

qconfigure -msvc.net
[...]
qvariant.cpp
Code wird generiert...
        cl -c -FIqmake_pch.h -Yuqmake_pch.h -Fptmp\qmake_pch.pch -nologo -Zm200
-GS -wd4996 -O2 -MD -GR -EHsc -W3 -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_EDITION=
QT_EDITION_DESKTOP -DQT_BUILD_QMAKE -DQT_BOOTSTRAPPED -DQT_NO_TEXTCODEC -DQT_NO_
LIBRARY -DQT_NO_STL -DQT_NO_COMPRESS -DQT_NO_UNICODETABLES -DQT_NO_GEOM_VARIANT
-DQT_NO_DATASTREAM -DQMAKE_OPENSOURCE_EDITION -DQT_NODLL -DQT_NO_THREAD -DQT_NO_
QOBJECT -DWIN32 -I"../src/corelib/arch/generic" -I"generators" -I"generators\uni
x" -I"generators\win32" -I"generators\mac" -I"../include" -I"../include/QtCore"
-I"../qmake" -I"../mkspecs/win32-msvc.net" -Fotmp\ @I:\DOKUME~1\Dywod\LOKALE~1\T
emp\nm212.tmp
quuid.cpp
        link /NOLOGO /SUBSYSTEM:CONSOLE /incremental:no /OUT:"..\bin\qmake.exe"
@I:\DOKUME~1\Dywod\LOKALE~1\Temp\nm213.tmp
ASSERT: "d->ref != 1" in file ..\src\corelib\tools\qlistdata.cpp, line 50
Wird Qt mit MinGW32 kompiliert, gibt es kein Problem. Im Thread http://www.qtforum.de/forum/viewtopic.php?t=1431 wurde schon einmal an dem Problem gearbeitet, aber die Lösung steht da leider nicht drinnen und auf Nachfrage meldet sich momentan auch keiner, und eine Google-Suche bringt auch nix... schon mal danke im vorraus für Vorschläge.

Verfasst: 10. Mai 2006 15:20
von Christian81
Ich habe derzeit nicht so viel Zeit um das gründlich anzupacken - deshalb keine Rückmeldung.
Eventuell ist das mkspec für msvc.net kaputt -> Probiere mal bitte mit configure-msvc2005.bat - sollte im Grunde auch gehen. Am besten mit einem frischen Source-Verzeichnis.

Verfasst: 11. Mai 2006 15:23
von Dywod
hi, danke erstmal für die Antwort. Ich habe qconfigure msvc2005 auf ein frisch gepatches und installiertes frische extrahiertes 4.1.2 Source Qt aufgerufen.

Leider fehlt die mt.exe (bei msvc2005 inkludiert)... sie ist per Platform SDK nachzuladen. Leider weiß ich nicht, wo im SDK die "Isolated Applications and Side-by-side Assemblies" zu finden sind und ich will nicht die ganzen 700 mb laden.

Verfasst: 11. Mai 2006 15:37
von Christian81
Ach so ein Pech... entweder Du bekommst sie irgendwo her oder kommentiere in qt-4-src/qmake/generators/win32/msvc_nake.cpp ~Zeile 90 diese Zeilen aus:

Code: Alles auswählen

    if ( project->first( "MAKEFILE_GENERATOR" ) == "MSVC2005" &&
        !project->isActiveConfig( "staticlib" ) ) {
        project->variables() [ "POST_TARGETDEPS" ] += "$(DESTDIR_TARGET).manifest";
        project->variables() [ "QMAKE_POST_LINK" ] += "mt.exe -nologo /manifest $(DESTDIR_TARGET).manifest /outputresource:$(DESTDIR_TARGET);#2";
        project->variables() [ "CLEAN_FILES" ] += "$(DESTDIR_TARGET).manifest";
    }
Löschen geht auch - ist ja nur zum Test.

Verfasst: 11. Mai 2006 18:54
von Dywod
Src frisch extrahiert, patch ausgeführt, Bereich wo mt.exe vorkommt wurde auskommentiert und qconfigure msvc2005 aufgerufen - gleiches Problem?!

Naja, ich werde sonst mal auf einem 2. rechner mit den gleichen src-Files probieren, werde wohl mal morgen schauen.

Notfalls bleibt mir noch immer das alte gute gvim-MinGW32 Gespann...

Verfasst: 12. Mai 2006 07:37
von Christian81
Were es nächste Woche mal mit msvc.net 2003 probieren. Ich denke dass der Fehler nur mit win32-msvc.net auftritt.

Verfasst: 12. Mai 2006 08:42
von Dywod
danke erst mal, ich bleibe dazwischen bei vim und MinGW32... nur vc wär mir schon lieber :roll:

Verfasst: 15. Mai 2006 09:28
von Christian81
Funktioniert bei mir mit MSVC.net2003 prima...

Code: Alles auswählen

quuid.cpp
        link /NOLOGO /SUBSYSTEM:CONSOLE /incremental:no /OUT:"..\bin\qmake.exe"
@C:\DOKUME~1\CEHRLI~1.EVE\LOKALE~1\Temp\nm2231.tmp

Microsoft (R) Program Maintenance Utility, Version 7.10.3077
Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.

        cd src && C:\tmp\qt-4.1.2-msvc.net\bin\qmake.exe src.pro -win32 -o Makefile
        cd src && nmake -f Makefile

Microsoft (R) Program Maintenance Utility, Version 7.10.3077
Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.
...
Es muss übrigens "qconfigure msvc.net" (ohne '-') heissen. Was mich auch wundert ist der fehlende Output zwischen dem link - Kommando und dem ersten qmake - Auftruf...
Bist Du dir auch sicher, dass nicht irgendwo noch eine alte qmake.exe vorhanden ist welche evtl. aufgerufen wird?

Verfasst: 15. Mai 2006 15:02
von Dywod
sry, "qconfigure -msvc.net" ist natürlich falsch, ich habe es ohne "-" aufgerufen... Das mit der bestehenden qmake könnte eventuell sein... ich bin leider momentan nicht bei dem Rechner, wo .net drauf ist, bin erst wieder am Wochenende dort, werde dann nocheinmal schauen.

Zu beachten ist auch, dass ich mit Visual Studio .NET arbeite (also v7.x oder .net 2002), nicht mit 2003... prinzipiell sollte das aber auch nicht einen so großen Unterschied machen... auch besonders deshalb, weil der ähnliche Fall (siehe http://www.qtforum.de/forum/viewtopic.php?t=1431) mit .net 2003 zu tun hatte.