Qt mit statischer CRT erzeugen (MSVC 2008 Express)
-
könntest du mir das mal genau beschreiben welche dlls ich beilegen muss
ich hab bisher in den beiden verzeicnissem:
VC\redist\x86\Microsoft.VC90.CRT
C:\Program Files\Microsoft Visual Studio 9.0\VC\redist\Debug_NonRedist\x86\Microsoft.VC90.DebugCRT
die beschriebenen dlls gefunden und diese mit der manifet datei in das verzeichnis der exe auf dem zielrechner kopiert
funktioniert hat es aber leider nicht
kommt die übliche meldung
-
Die DLLs aus Debug_NonRedis darfst du nicht weiter geben! Sagt doch sowohl der Name "Debug_NoRedis" als auch nochmal der eindeutige Hinweis in der redist.txt.
Dein Verzeichnis muß ungefähr so aussehen:
- MyAppl.exe
- Microsoft.VC80.CRT.manifest
- msvcp80.dll
- msvcr80.dllFür MSVC 9.0 entsprechend andere Versionen. Das sollte aber klar sein.
Die msvcrXX.dll ist die C-Runtime, die msvcpXX.dll die C++-Runtime.Es gibt noch eine dritte msvcmXX.dll, die ist aber nur für ManagedCode (CLR) und die brauchst du für gewöhnlich nicht.
Wenns nicht besser wird, dann poste bitte die genaue Fehlermeldung.
Übrigens kann man auch ein MSI-Paket erstellen, das ist auch sehr einfach zu bauen und da wird gleich alles mit reingelegt.
-
möchte mich erstmals bei dir bedanken
funktioniert hat es aber leider nicht
die fehlermeldung sieht folgender massen aus:
erst kommt der adresspfad
dannach kommt folgender textDies Anwendung konnte nicht gestartet werden,weil die Anwendungskonfiguration nicht korrekt ist. Zur Problembehebung sollten sie die Anwendung neu installieren
folgende dateien waren in dem verzeichnus
- Halloworld.exe
- Microsoft.VC90.CRT.manifest
- msvcp90.dll
- msvcr90.dllhab ein einfache hallo world programm genommen um es zu testen
erstelt wurde die exe mit msvc 2008 express
-
Mal anders gefragt: Ist es lizenztechnisch überhaupt möglich in eine GPLd Anwendung die M$-CRT statisch zu linken? Afaik nein, denn schon das dynamische Linken macht ja so manchem OpenSource-Freak Sorgen. Und in Verbindung mit der GPL darf ja nach Aussage von einigen Gurus nur VC6 verwendet werden, da diese DLL beim OS ab XP schon dabei sind. Oder hast du eine properitäre QT-Lizenz?
rya.
-
scorcher24@arbyte schrieb:
Mal anders gefragt: Ist es lizenztechnisch überhaupt möglich in eine GPLd Anwendung die M$-CRT statisch zu linken? Afaik nein, denn schon das dynamische Linken macht ja so manchem OpenSource-Freak Sorgen. Und in Verbindung mit der GPL darf ja nach Aussage von einigen Gurus nur VC6 verwendet werden, da diese DLL beim OS ab XP schon dabei sind. Oder hast du eine properitäre QT-Lizenz?
rya.Hast du den Thread überhaupt gelesen? Vom statischen linken sind wir schon längst weg! Es geht um das beilegen von der Runtime als DLLs. Das man nicht statisch linken kann, wurde schon geschrieben.
-
scorcher24@arbyte schrieb:
Mal anders gefragt: Ist es lizenztechnisch überhaupt möglich in eine GPLd Anwendung die M$-CRT statisch zu linken? Afaik nein, denn schon das dynamische Linken macht ja so manchem OpenSource-Freak Sorgen. Und in Verbindung mit der GPL darf ja nach Aussage von einigen Gurus nur VC6 verwendet werden, da diese DLL beim OS ab XP schon dabei sind. Oder hast du eine properitäre QT-Lizenz?
rya.Hast du den Thread überhaupt gelesen? Vom statischen linken sind wir schon längst weg! Es geht um das beilegen von der Runtime als DLLs. Das man nicht statisch linken kann, wurde schon geschrieben.
-
[quote="QT_static_CRT_MSVC2008"
erst kommt der adresspfad
dannach kommt folgender textDies Anwendung konnte nicht gestartet werden,weil die Anwendungskonfiguration nicht korrekt ist. Zur Problembehebung sollten sie die Anwendung neu installieren
[/quote]
Hem... es ist die erwartete Fehlermeldung. Sehr dumm, das Microsoft solch eine nichtssagende Fehlermeldung ausgibt!Kann es sein, das du die CLR aktiviert hast? Und dann würde wohl noch die msvcmXX.dll benötigt werden. Aber logischer wäre es CLR im Projekt zu deaktivieren.
Bevor du weiter blind im Nebel rumstocherst, wäre es wohl an der Zeit den Dependency Walker zu benutzen!
Der zeigt dir an, welche DLLs dein Programm benötigt. Den Dependency Walker kann man von der MSDN.com kostenlos runter laden.
Danach weiß ich auch nicht mehr weiter, wo der Fehler liegen könnte.
-
Hab das überlesen sorry, aber dann hier ne Lösung:
http://blog.kalmbach-software.de/2008/05/03/howto-deploy-vc2008-apps-without-installing-vcredist_x86exe/
Von Jochen Kalmbach, der is glaub auch hier im Forum unterwegs...
rya.
-
Sieht ja ziemlich aufwändig aus.
Hat sich mit MSVC 9.0 so viel geändert ggü. MSVC 8.0?
Mit meinem MSVS 8.0 reicht einfach nur das reinkopieren der drei Dateien, fertig.
Dann würde ich aber lieber ne MSI-Datei erzeugen oder den Anwender die Distri installieren lassen.
-
Oder mit MinGW kompilieren, da hast nen stress nicht
rya.
-
scorcher24@arbyte schrieb:
Oder mit MinGW kompilieren, da hast nen stress nicht
rya.LOL! Der mingw führt nur die DLL-Hölle weiter, die man endlich loswerden will! Ist das weniger Stress? Ganz bestimmt nicht.
Das der Thread-Ersteller seine Tools nicht kennt, ist eine gute Hürde, um der DLL-Hölle zu entkommen. Er soll erstmal den Dependency Walker ausprobieren...
-
Bulli schrieb:
scorcher24@arbyte schrieb:
Oder mit MinGW kompilieren, da hast nen stress nicht
rya.LOL! Der mingw führt nur die DLL-Hölle weiter, die man endlich loswerden will!
Inwiefern?
rya.