Hi, ich versuch jetzt schon seit 1 1/2 Wochen Qt statisch für MS Visual Studio 2010 zu kompilieren.
Das Addon dazu ist in Visual Studio installiert und als Qt Path "D:\Qt\4.7.2\" angegeben. Darin ist ein kompiliertes Qt wobei ich configure mit "-platform win32-msvc2010 -static -debug-and-release" ausgefüht habe. Anschliessend nmake. Dann hab ich versucht ein kleines Testprogramm zu kompilieren, aber beim LInk kommt die Meldung "1>LINK : fatal error LNK1104: Datei "QtCored4.lib" kann nicht geöffnet werden.". Dann hab ich mit der Windows-Suche die Datei "QtCored4.lib" gesucht. Die wurde nicht gefunden. Dann hab ich in den Projekteigenschaften von /MDd auf /MTd umgestellt. Das hat leider auch nichts gebracht. Dann hab ich nochmal versucht Qt zu kompilieren diesmal mit "-platform win32-msvc2010 -static". Das hat leider auch nichts bewirkt. Dann hab ich nochmal mit "-platform win32-msvc2010" versucht. Das hat funktioniert, ist aber leider nicht statisch. Dann hab ich versucht, alle Dateien, die nicht vorhanden sind, aus der nicht-statischen Version von Qt in die statische zu verschieben. Das hat leider auch nichts gebracht.
Jetzt ist meine Frage: Kann man Qt statisch für MS Visual Studio 2010 kompilieren und benutzen?
Gruss.
Qt für MS Visual Studio 2010
Ja, Die Entwickler bauen da immer kleine Fallstricke ein irgendwie
Nutz du das VS Plugin fuer Qt ?
Das zeigt da irgendwie inkonsistenten verhalten z.b.
In deinem statisch kompilierierten Verzeichnis unter /lib, hasst da mal nachgeschaut ? Da erkennt man eigentlich recht fix, das die libs Ihre 4 aus dem Namen verloren haben.
Bei der statisch gelinkten variante ändern sich also die Namen der zuzulinkenden libs !
QtCored4.lib -> QtCored.lib
Stellst du also ein dynamisch gelinktes Programm auf Statisch um, hilft es meist nicht nur das QTDir zu ändern. Man muss auch das Projekt ändern (libs)
BTW, die C/C++ runtime auch statisch zu linken, klingt verlockend (erspart den aerger mit den redistributiables) aber wird von den QT-Entwicklern expliziet als problematisch, funktioniert nicht 100% deklariert. (Und ich habs auch noch ned hinbekommen, die qt mit /MTd zu übersetzen ... aber auch nicht so viel Energie reingesteckt)
Ciao ...
Nutz du das VS Plugin fuer Qt ?
Das zeigt da irgendwie inkonsistenten verhalten z.b.
In deinem statisch kompilierierten Verzeichnis unter /lib, hasst da mal nachgeschaut ? Da erkennt man eigentlich recht fix, das die libs Ihre 4 aus dem Namen verloren haben.
Bei der statisch gelinkten variante ändern sich also die Namen der zuzulinkenden libs !
QtCored4.lib -> QtCored.lib
Stellst du also ein dynamisch gelinktes Programm auf Statisch um, hilft es meist nicht nur das QTDir zu ändern. Man muss auch das Projekt ändern (libs)
BTW, die C/C++ runtime auch statisch zu linken, klingt verlockend (erspart den aerger mit den redistributiables) aber wird von den QT-Entwicklern expliziet als problematisch, funktioniert nicht 100% deklariert. (Und ich habs auch noch ned hinbekommen, die qt mit /MTd zu übersetzen ... aber auch nicht so viel Energie reingesteckt)
Ciao ...