Stand der Technik cross-platform (compiler, automation, integration, test, VM)?

Gast #6084104
Lesenswert?

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
(Firma: Q3) #6085293
Lesenswert?

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.
#6085452
Lesenswert?

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
#6085458
Lesenswert?

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.
#6085464
Lesenswert?

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. ;-)
Gast #6089205
Lesenswert?

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
Gast #6090050
Lesenswert?

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!
Gast #6090101
Lesenswert?

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
#6095305
Lesenswert?

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. ;-)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren