2004-09-22 -> veraltert (qt4.0.0 unterstützt jetzt mingw direkt) Qt unter Wine benutzen Wollen sie vielleicht Qt Programme kompilieren, möchten dazu aber die Eval oder Free Version verwenden? Diese unterstützt leider nur Visual C++, und nicht mingw! Unter [0] ist eine ausführliche Anleitung wie man Visual C++ unter Wine einrichtet. Ich werde auf meine Probleme bei der Einrichtung aber nochmal eingehen. Der erste Schritt ist das installieren von Wine. Da Compiler keine komplizierten grafischen Librarycalls verwenden, funktioniert das ganze auch schon mit älteren Versionen, der Autor von [0] hat 2002-0-04 verwendet, meine Version ist ein Backport für Debian Woody und hat immerhin bereits die Version 2003-04-08. Die geschilderten Probleme mit der emulierten Konsole gibt es bei meiner Version nicht mehr, die Konsole integriert sich z.b. in "konsole" von kde. Auf die Installation und Konfiguration von Wine möchte ich nicht näher eingehen, nur soviel: winesetuptk hat eine kaputte Konfigurations- datei erzeugt, mit der komische Fehler, ala: "Konnte nicht kompilieren, out of environment memory." Qt installieren muß leider auf einen Windowsrecher erfolgen, da dieser Prozess nicht (leicht) emuliert werden kann. Auf diesen Rechner muß leider auch Visual C++ vorhanden sein. Die selben Pfade verwenden wie man nachher in seiner wine-Umgebung haben will, kann sicher nicht schaden. Zum Schluß kopiert man einfach die Pfade vc98, MSDev98 und qt in den wine Ordner. Bei mir wie folgt: c:\Visual\ -> qt3-3-3 -> vc98 -> MSDev98 Nun muß die Konfiguration (~/.wine/config) von Wine angepasst werden. Der Pfad wird auf folgendes gesetzt: "Path" = "C:\\Visual\\qt3-3-3\\bin;C:\\Visual\\MSDev98\\Bin; C:\\Visual\\vc98\\Bin;C:\\Visual\\qt\\bin;c:\\windows; c:\\windows\\system;e:\\" Pfade sind natürlich je nach Installation zu korriegen. Das ganze muß in einer Zeile stehen. Trennzeichen ist ";"! Unter [Version] muß "Windows" = "win2k" oder ein anderes Windows gesetzt sein, da qmake auf diese Information zurückgreift. Die DLLs können mehr oder weniger gelassen werden. Notwendig ist es aber msvcrt.dll nach c:\windows\system zu kopieren. Ob mit Original DLLs bessere ergebnisse erziehlt werden können, konnte ich noch nicht herausfinden. Downloads von allen Dlls unter [1]. Im Ordner C:\Visual\qt3-3-3\lib muß ein Hardlink angelegt werden: ln qt-mteval333.dll qt.dll Könnte man genauso kopieren. Außerdem muß eine autoexec.bat angelegt werden, mit folgendem Inhalt: set INCLUDE=C:\Visual\vc98\Include;C:\Visual\Qt3-3-3\Include set LIB=C:\Visual\vc98\Lib;C:\Visual\Qt3-3-3\Lib set QTDIR=C:\Visual\Qt3-3-3 set QMAKESPEC=C:\Visual\Qt3-3-3\mkspecs\win32-msvc Pfade wie immer anpassen! Bei include und lib muss von Visual C++ und von Qt die Pfade angegeben werden. Trennzeichen ist ";"! Bugs: fixme:console:SetConsoleCtrlHandler (0x7800f588,1) - no error checking or testing yet Dieser Fehler ist ständig beim Kompilieren aufgetreten. Ich habe keine Möglichkeit gefunden, wie man ihn entfernt. Dll warnings: LINK : warning LNK4199: /DELAYLOAD:comdlg32.dll ignored; no imports found from comdlg32.dll LINK : warning LNK4199: /DELAYLOAD:oleaut32.dll ignored; no imports found from oleaut32.dll LINK : warning LNK4199: /DELAYLOAD:winmm.dll ignored; no imports found from winmm.dll LINK : warning LNK4199: /DELAYLOAD:wsock32.dll ignored; no imports found from wsock32.dll LINK : warning LNK4199: /DELAYLOAD:winspool.dll ignored; no imports found from winspool.dll Könnte man mit Original Dlls austauschen, damit der Fehler verschwindet. [0] http://codingstyle.com/articles/using-ms-vcpp-with-gnu-wine.html [1] http://dll.yaroslavl.ru/index.php3