Seite 1 von 1

[gelöst] Qt statisch mit vs express und Qt 4.3.2

Verfasst: 14. Oktober 2007 11:20
von Der Neue
Hallo

Ist es nach wie vor nötig die qmake.conf für einen statischen Build von Qt 4.3.2 unter Visual Studio 2005 Express manuell zu ändern?
Oder wird das durch die offizielle Unterstützung jetzt automatisch erledigt?

Mfg
Der Neue

Verfasst: 14. Oktober 2007 14:22
von Christian81

Verfasst: 14. Oktober 2007 18:02
von Der Neue
Tut mir leid falls ich jetzt falsch liege, aber die Seite kannte ich schon und da wird doch nur beschrieben wie es mit Qt 4.1.3, d.h. mit inoffiziellem Patch ging.
Mittlerweilen wird aber der msvc compiler offiziell unterstützt und meine Frage war, ob es nach wie vor nötig ist die qmake.conf per Hand zu ändern.

Aber ich habs heute eh nochmal dynamisch kompiliert und mir is aufgefallen, dass die Frage "ob ich qmake jetzt erstellen will" gar nicht mehr erscheint, woraus ich folgere, dass auch das Bearbeiten der .conf Datei so gar nicht mehr möglich und folglich überflüssig ist. Hat sich also erledigt.

Trotzdem Danke für die Anwort
Mfg
Der Neue

Verfasst: 14. Oktober 2007 18:28
von Christian81
Der einzigste Unterschied dazu ist, dass es kein qconfigure.bat mehr gibt und man den Patch nicht mehr installieren muss - der Rest ist genau das Gleiche.

Verfasst: 15. Oktober 2007 17:33
von flare
Hierzu hätte ich auch mal eine Anmerkung:

Ich habe Qt 4.3.2 versucht statisch und ohne Visual Studio DLLs zu kompilieren.

Dazu habe ich im File "qmake.conf" im Verzeichnis "mkspecs\win32-msvc2005"

Code: Alles auswählen

QMAKE_CFLAGS_RELEASE	= -O2 -MD
geändert in

Code: Alles auswählen

QMAKE_CFLAGS_RELEASE	= -O2 -MT
und

Code: Alles auswählen

QMAKE_CFLAGS_DEBUG	= -Zi -MDd
geändert in

Code: Alles auswählen

QMAKE_CFLAGS_DEBUG	= -Zi -MTd
Ich denke mal, da kann man ja auch nicht viel falsch machen.
Anschließend "configure -platform win32-msvc2005 -static -release" eingegeben, läuft auch prima, nur wenn ich danach "nmake sub-src" eintippe bricht der Compiler mit folgender Fehlermeldung ab:

Code: Alles auswählen

Code wird generiert...
	cl -c -nologo -Zm200 -Zc:wchar_t- -O2 -MT -GR -EHsc -W3 -w34100 -w34189 -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_BOOTSTRAPPED -DQT_MOC -DQT_NO_CODECS -DQT_LITE_UNICODE -DQT_NO_LIBRARY -DQT_NO_STL -DQT_NO_COMPRESS -DQT_NO_DATASTREAM -DQT_NO_TEXTSTREAM -DQT_NO_TEXTCODEC -DQT_NO_UNICODETABLES -DQT_NO_THREAD -DQT_NO_REGEXP -DQT_NO_QOBJECT -DQT_NO_SYSTEMLOCALE -DQT_NO_GEOM_VARIANT -DQT_NODLL -I"..\..\corelib\arch\generic" -I"..\..\..\include" -I"." -I"..\..\..\include\QtCore" -I"." -I"." -I"..\..\..\mkspecs\win32-msvc2005" -Forelease\ @C:\DOKUME~1\Berni\LOKALE~1\Temp\nm35.tmp
qbytearraymatcher.cpp
qdatetime.cpp
qhash.cpp
qlistdata.cpp
qlocale.cpp
qmap.cpp
qstring.cpp
qstringlist.cpp
qvector.cpp
qbytearray.cpp
qvsnprintf.cpp
Code wird generiert...
	link /NOLOGO /INCREMENTAL:NO /SUBSYSTEM:CONSOLE /MANIFESTFILE:"release\moc.intermediate.manifest" /OUT:..\..\..\bin\moc.exe @C:\DOKUME~1\Berni\LOKALE~1\Temp\nm36.tmp 
	mt.exe -nologo -manifest "release\moc.intermediate.manifest" -outputresource:..\..\..\bin\moc.exe;1

release\moc.intermediate.manifest : general error c1010070: Failed to load and parse the manifest. Das System kann die angegebene Datei nicht finden.
Wenn ich das richtig verstanden habe, findet er das Manifest nicht. Ist aber eigentlich nicht so schlimm, weil (in diesem Fall) qmake.exe ja schon erstellt ist. Man kann also weitermachen, indem man bei jedem Abbruch wieder "nmake sub-src" eingibt.

Das resultierende Qt funktioniert auch (zumindest bei mir mit nem ca. 15000 Zeilen Projekt in einem jungfräulichen Virtual-PC-Image). Meine Frage wäre nun: tritt dieser Fehler nur bei mir auf oder ist er schon jemand anderem untergekommen?

MfG

Verfasst: 15. Oktober 2007 17:44
von Christian81
qmake.conf -> embed_manifest_exe und _dll entfernen.

Verfasst: 15. Oktober 2007 18:15
von flare
Hallo Christian,

Vielen Dank für die promte und korrekte Antwort!

Mit freundichen Grüßen