Hi, ich weiß es gibt dazu schon einiges im Netz aber ich bekomme es einfach nicht hin, dass ich einen Compiler bekomme der Statisch Linken kann. Gibt es vielleicht eine Batch oder exe die man nur ausführen muss und dann baut die mir einen Statischen Compiler zusammen? Vilen Dank schonmal
:
Bearbeitet durch User
Nico F. schrieb: > aber ich bekomme es einfach nicht hin, dass ich einen Compiler bekomme > der Statisch Linken kann. Nicht? Welche Compiler können denn nicht statisch linken?
Bei Qt braucht die exe hinterher noch einige dlls damit sie läuft. Ich will es aber gerne so gelinkt haben das ich hinterher nur eine einzige ausführbare exe habe.
https://wiki.qt.io/How_to_build_a_static_Qt_version_for_Windows_with_gcc/de https://forum.qt.io/topic/44406/tutorial-qt-libs-für-statisches-linken-builden-mingw Oliver
Geh mal auf die Seite hier: https://wiki.qt.io/Building_a_static_Qt_for_Windows_using_MinGW Da steht alles drinne! Ist in erster Linie ein PowerShell-Script, dass dir die Build-Umgebung baut. Der Rest ist Kikikram. ;-) Das Teil funzt top! Gruß, Bernhard
> Da steht alles drinne! > Ist in erster Linie ein PowerShell-Script, dass dir die Build-Umgebung > baut. > Der Rest ist Kikikram. ;-) Habe ich gestern versucht, der sagt mir das er MineGw nicht findet oder es nicht installiert ist, obwohl ich Qt mit allen versionen von MineGw installiert habe. Also die "windows-build-qt-static.ps1" habe ich getestet
:
Bearbeitet durch User
Das gibt es noch mehr als ein reines technisches Problem. Wenn du statisch gegen Qt linkst (welche unter der LGPL steht), wird deine Applikation automatisch auch GPL, dh du müsstest dich daran halten. Ausgenommen natürlich die kommerzielle Qt Lizenz bzw dynamisches Linken.
foobar schrieb im Beitrag > Das gibt es noch mehr als ein reines technisches Problem. > Wenn du statisch gegen Qt linkst (welche unter der LGPL steht), wird > deine Applikation automatisch auch GPL, dh du müsstest dich daran > halten. > Ausgenommen natürlich die kommerzielle Qt Lizenz bzw dynamisches Linken. Das heißt im Klartext das ich das nicht darf?
Du darfst alles. Wenn du deine Applikation weitergibst, dann halt nur unter Berücksichtigung der Lizenzen aller hineingelinkten libs und sonstigen Sourcen. Das ist aber jetzt keine große Überraschung, oder? Oliver
Wenn man so drüber nachdenkt ist es keine große Überraschung, habe ich nur bis eben nicht getan weil ich es nicht veröffentlichen will. Muss ich an diesem PowerShell-Script noch etwas einfügen, also zB. Den Pfad zu MinGw oder geht das alles automatisch? Nico
Das sollte alles automatisch gehen. Die PowerShell muss halt Version V3.0 oder neuer sein. Ansonsten war das bei mir ein Selbstläufer...
Und Achtung: erst frei entwickeln und dann eine kommerzielle Lizenz zum veröffentöichen kaufen (mieten) ist laut FAQ auch illegal.
foobar schrieb: > Das gibt es noch mehr als ein reines technisches Problem. > Wenn du statisch gegen Qt linkst (welche unter der LGPL steht), wird > deine Applikation automatisch auch GPL, dh du müsstest dich daran > halten. Das ist nicht richtig. Die Lizenz, unter der man das Programm veröffentlichen muss, hat nichts damit zu tun, ob man statisch oder dynamisch linkt. Das Problem liegt etwas anders: Wenn man eine Bibliothek nutzt, die unter LGPL steht, muss man demjenigen, dem man das Progrmam weitergibt, die Möglichkeit geben, die Bibliothek zu ändern und die geänderte Version dann zusammen mit dem Programm benutzen zu können. Bei einem dynamisch gelinkten Programm ist das sehr einfach. Bei einem statischen ist es aber sehr schwierig bis unmöglich, die Bibliothek da nachträglich wieder rauszufummeln und durch eine andere Version zu ersetzen. Möglich wäre noch, die Object-Files des Programms bereitzustellen, so dass das finale Linken auch für den Abnehmer selbst möglich ist.
Nico F. schrieb: > weil ich es nicht veröffentlichen will Nur so: es geht nicht um veröffentlichen, sondern weitergeben. Solange du es nur für dich nutzen willst, ist das alles egal. Da stellt sich dann nur die Frage: warum der Aufwand? Nur für dich allein dürfte es doch leichter sein, die DLLs zu kopieren.
Schau mal, hier wurde diese Frage bereits ausführlich durchgekaut: https://blog.qt.io/blog/2009/11/30/qt-making-the-right-licensing-decision/
Jörg W. > Solange du es nur für dich nutzen willst, ist das alles egal. Da > stellt sich dann nur die Frage: warum der Aufwand? Nur für dich > allein dürfte es doch leichter sein, die DLLs zu kopieren. Problem ist mir fehlt das Platformplugin für Windows und da ich nicht weiß wo ich das bei meinem anderen Rechner hinpassen muss währe meine Lösung statisches Linken gewesen...
> Problem ist mir fehlt das Platformplugin für Windows
Was soll das sein?
Es genügt doch, die DLL's einfach zur EXE Datei dazu zu legen.
Das hier schon mal angeschaut? https://forum.qt.io/topic/20759/failed-to-load-platform-plugin-windows/20 https://forum.qt.io/topic/26520/solved-deployement-of-a-qt5-apps-on-windows7-_fail_
physiker schrieb: > Das hier schon mal angeschaut? > https://forum.qt.io/topic/20759/failed-to-load-platform-plugin-windows/20 > https://forum.qt.io/topic/26520/solved-deployement-of-a-qt5-apps-on-windows7-_fail_ Ja habe ich. Und die Powershell Datei funktioniert leider nicht, die rennt ohne Fehler durch und macht dabei nichts. Und es währe mir am liebsten das ich eine Datei habe die dann alles hat, wenn ich die mal auf einen anderen pc übertragen will.
Nico F. schrieb: > Und die Powershell Datei funktioniert leider nicht, die rennt ohne > Fehler durch und macht dabei nichts. Also bei dir gibt es kein neues Verzeichnis "C:\Qt\Static" ?
:
Bearbeitet durch User
Hallo, vielen Dank erstmal für eure mühe!!! ich habe es jetzt hinbekommen das das Power Shell-Skript arbeitet (habe den Compiler einfach mal statisch eingetragen und dann lief es) mein Problem ist jetzt das er mir eine Fehlermeldung schmeißt und ich beim Compilen hinterher über 16000 Errors erhalte.
Man kann Text aus dem Kommandozeilenfenster in die Zwischenablage kopieren, man kann bei Kommandozeilenaufrufen mit > den Text in eine Textdatei ausgeben lassen. Dein Screenshot ist ziemlich nutzlos. Interessant ist bei solchen Fehlerlisten immer der Anfang, nicht das Ende, denn ganz viele Fehler sind Folgefehler.
Kann ich gerne morgen nochmal hochladen aber das wird dann eine etwas größere Datei.
Rufus Τ. F. schrieb: > Interessant ist bei solchen Fehlerlisten immer der Anfang, nicht das > Ende, denn ganz viele Fehler sind Folgefehler. Was sollten dir wohl diese Worte sagen? Zudem erkennt man Fehlermeldungen in der Regel daran, das das Wort error in der Meldung vorkommt. Sowas wie copy oder sonstiges ist kein Fehler. Oliver
Hast Du "Anfang" verstanden? Hast Du das hier gelesen? Nico F. schrieb: > mein Problem ist jetzt das er mir eine Fehlermeldung schmeißt und ich > beim Compilen hinterher über 16000 Errors erhalte. Anscheinend nicht. Troll.
Nur nochmal zum Verständnis das Script hatte das ganze auch gemacht bis es abgebrochen hat. Dann habe ich einfach mal das was dabei rausgekommen ist bei Qt als Compiler eingetragen und dann hat Qt mir die fehler ausgegeben.
:
Bearbeitet durch User
Nico F. schrieb: > und dann hat Qt mir die fehler ausgegeben. Ja. Und die musst Du Dir ansehen. Dabei von vorne anfangen.
Moin, habe es durch neustart des PCs und nachmaliges ausführen des PowerShell-Scrips gelöst bekommen. Nico
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.