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

Verschiedenes zu Qt
Antworten
Dywod
Beiträge: 6
Registriert: 9. Mai 2006 15:55

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

Beitrag 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.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag 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.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Dywod
Beiträge: 6
Registriert: 9. Mai 2006 15:55

Beitrag 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.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag 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.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Dywod
Beiträge: 6
Registriert: 9. Mai 2006 15:55

Beitrag 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...
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Were es nächste Woche mal mit msvc.net 2003 probieren. Ich denke dass der Fehler nur mit win32-msvc.net auftritt.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Dywod
Beiträge: 6
Registriert: 9. Mai 2006 15:55

Beitrag von Dywod »

danke erst mal, ich bleibe dazwischen bei vim und MinGW32... nur vc wär mir schon lieber :roll:
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag 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?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Dywod
Beiträge: 6
Registriert: 9. Mai 2006 15:55

Beitrag 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.
Antworten