Ich bastele gerade ein kleines C++ Programm mit Qt unter Windows (mingw). Was ist gerade so gang und gäbe, um das auch für Linux(e) und MacOS zu bauen bzw. bauen zu lassen?
Info schrieb: > Was ist gerade so gang und gäbe, um das auch für Linux(e) und MacOS zu > bauen bzw. bauen zu lassen? Wie meinst du das? Wenn du qmake zum bauen verwendest und auf die Nutzung von Winapi-Funktionen verzichtest, kann man es meist unverändert bauen.
Ich meine: gibt es Dienste bzw. Software die aus meinem Quelltext Windows, Linux und OSX binaries baut? Ich sehe gelegentlich bei Github schicke Icons mit schicken Buzzwords. Ich hatte gehofft, dass es zum Thema eine Übersicht in wenigen Worten gibt. Es würde mir also auch schon ein Link auf eine Zusammenfassung völlig genügen ("du machst dir dein XYZ image [a], lädst das bei [x] rauf, wartest n Tage und kannst die binaries dann runterladen"). Der Aufwand wird nicht lohnen, aber ich wollte mal über den Tellerrand blicken... https://de.wikipedia.org/wiki/Kontinuierliche_Integration https://de.wikipedia.org/wiki/Continuous_Delivery https://de.wikipedia.org/wiki/Testautomatisierung
Ich kenne heute 2 Systeme, mit denen man halbwegs zuverlässig für Multi-Plattform compilieren kann: a) Java, wobei man bei jeder Lib ganz genau hinsehen muss, ob sie tatsächlich für alle angestrebten Plattfprmen finktionierenden Code enthalten b) XOJO mit den MBS-Plugis. Kostet, aber funktioniert sehr zuverlässig.
Purebasic Gruss Chregu
Du benutzt doch schon Qt, somit hast Du für drei Platformen (Win, Linux und Mac) die gleiche Codebase
Prinzipiell klappt Cross-compile unter Linux für Windows problemlos. Du musst dir vermutlich eine passende Qt-Version dafür bauen, dann sollte auch das klappen. Deine buzzword-Suche und Dienst-Vorstellungen lassen aber vermuten, daß das für dich einem größere Aufgabe wird. Der Dienst, den du suchst, nennt sich Programmier-Dienstleistung. Du sagst denen, was du willst, und einige Zeit später bekommst du die fertigen Binaries. Voraussetzung ist natürlich die Überweisung eines passenden Geldbetrags. Oliver
Ich hab den Eindruck, als ob die Antworten allesamt an der Frage vorbei gehen. Was ich verstanden habe: Er hat einen Quellcode mit Qt geschrieben und sucht jetzt einen Buildserver, der das automatisiert compiliert für alle seine Zielplattformen. Es gibt verschiedene Dienste im Internet, wie z.B. gitlab, die sowas anbieten. Und es gibt Software-Pakete, um sich sowas selbst aufzusetzen, wie z.B.Jenkins oder Bamboo.
Info schrieb: > Ich meine: gibt es Dienste bzw. Software die aus meinem Quelltext > Windows, Linux und OSX binaries baut? Zumindest für Linux-Binaries ist das auch unter Windows mit Docker relativ einfach. Der Trick ist: Du baust Dir ein Docker-Image mit den benötigten Buildwerkzeugen und -Libraries und dazu ein Entrypoint-Skript, das in das Verzeichnis mit Deinem Sourcecode wechselt und dort qmake aufruft. Dann mountest Du das Verzeichnis mit Deinem Sourcecode mit --volume beim Aufruf von "docker run" in den Container, und sobald dieser gestoppt ist, ist Dein Programm gebaut. Das funktioniert auch für verschiedene Distributionen und Versionen davon sehr gut. Fortgeschrittene rufen anfangs am Ende des Entrypoint-Skripts am Ende noch ein "exec /bin/bash" auf, so daß nach dem Build eine interaktive Shell gestartet wird, um das gebaute Programm zum Beispiel mit ldd(2) darauf zu untersuchen, welche Libraries (Abhängigkeiten) es benötigt. Danach kann man diesen Teil ganz wunderbar durch den Bau distributionsspezifischer Pakete ersetzen, so daß ein Image zum Beispiel für den Bau von RPM-Paketen für RedHat, SuSE, CentOS und Fedora, und ein anderes Image für den Bau von Paketen für Debian und Ubuntu vorhanden ist. Theoretisch müßte es sogar relativ easy möglich sein, das Programm mit weiteren Images bzw. Containern zu testen. Dazu bedarf es auf dem Host eines X-Servers wie VcXsrv und eines SSH-Clients, beides zusammen bietet MobaXTerm. Damit kannst Du Dich mit X-Forwarding auf einen OpenSSH-Server in einem laufenden Container verbinden, und dort dann Dein GUI-Programm aufrufen und nach Herzenslust testen. Zur Automatisierung solcher Tests bietet sich so etwas wie Autoit an. All das hört sich viel komplizierter an, als es ist, aber wenn man alles einmal sauber durchgetestet hat und es dann einmal funktioniert, ist das sehr komfortabel und zudem portabel. Irgendwo habe ich mal gelesen, daß man mit dem GCC im "Windows Subsystem for Linux" (WSL), das es als experimentelles(?) Feature unter Windows gibt, auch Linux-Binaries übersetzen lassen. Das kann ich mir gut vorstellen, denn die Pakete in diesem WSL sind ja ganz normale, native Ubuntu-Pakete, aber... naja, YMMV. ;-)
Ich mach grad was mit dotnet Core... Console lässt sich unter Windows und Linux auf dem raspberry ausführen... Auch Asp funktioniert auf beiden Systemen. Da ich nicht viel Ahnung von Linux habe war es trotzdem einfach dotnet auf dem raspberry zu installieren. Vielleicht hilft es. Wenn ich es richtig verstanden habe geht mit dotnet c++, c#, vb und javascript
Rolf M. schrieb: > Es gibt verschiedene Dienste im Internet, wie z.B. gitlab, die sowas > anbieten. Und es gibt Software-Pakete, um sich sowas selbst aufzusetzen, > wie z.B.Jenkins oder Bamboo. Sehe ich mir an, danke. Sheeva P. schrieb: > Zumindest für Linux-Binaries ist das auch unter Windows mit Docker > relativ einfach. Linux läuft auf/unter Docker auf/unter Windows? Also ein Linux kann ich auch booten oder als VM laufen lassen, aber da sieht's mit der Automatisierung und vor allem dem Sprung zu OSX schlechter aus. Danke!
Drahtverhau schrieb: > Ich mach grad was mit dotnet Core... Console lässt sich unter Windows > und Linux auf dem raspberry ausführen... Auch Asp funktioniert auf > beiden Systemen. Da ich nicht viel Ahnung von Linux habe war es trotzdem > einfach dotnet auf dem raspberry zu installieren. Vielleicht hilft es. > Wenn ich es richtig verstanden habe geht mit dotnet c++, c#, vb und > javascript *megafacepalm
Info schrieb: > Linux läuft auf/unter Docker auf/unter Windows? Korrekt. Windows-Docker bootet in älteren Versionen eine Linux-VM unter VirtualBox, neuere Versionen booten ein "Moby Linux" (womöglich eine MS-Variante?) unter Hyper-V. Darin laufen dann die Docker-Container. > Also ein Linux kann ich auch booten oder als VM laufen lassen, aber da > sieht's mit der Automatisierung und vor allem dem Sprung zu OSX > schlechter aus. Just das ist ja mein Punkt: Du kannst das unter Windows automatisieren, mithilfe passender docker- bzw docker-compose-Konfigurationen. ;-)
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.