Forum: PC Hard- und Software Windows 10 Buildumgebung


von Martin (martin79)


Lesenswert?

Für eine grafische Qt Oberfläche suche ich eine Möglichkeit diese auch 
für Windows zu kompilieren, da der Kunde nun auch Windows (Mindestens 
windows 10 haben will). Normalerweise kompiliere ich alles in einer 
Docker Buildumgebung für diverse Linux Distributionen oder generiere im 
Container ein Appimage. Das geht auch dank Qemu für verschiedene 
Architekturen gut (Dann wird der ganze Docker Container mit QEMU 
ausgeführt und man kann ein Debian ARM container auf AMD64 laufen 
lassen).

Nach ein bisschen Recherche habe festestellt, dass es keine Möglichkeit 
zu geben scheint einen Windows Container unter Linux auszufüren.

Ich habe das bisher immer mit MSYS2 und Windows gemacht. Weiß jemand, ob 
es von Microsoft ein Image oder eine Umgebung gibt, die kostenlos nur 
zum Bauen von Software zur Verfügung gestellt wird. Ich will es ja nur 
laufen lassen und den Buildserver damit verbinden.

von Harald K. (kirnbichler)


Lesenswert?

Martin schrieb:
> Weiß jemand, ob
> es von Microsoft ein Image oder eine Umgebung gibt, die kostenlos nur
> zum Bauen von Software zur Verfügung gestellt wird.

Es gibt eine kostenlose Windows-Version, die man drei Jahre lang 
verwenden kann. Das ist die 180-Tage-Testversion der Serverversion, die 
kann man ohne Anmeldung bei MS herunterladen.
Nach der Installation muss das Ding einmal das Internet sehen können, um 
sich zu "aktivieren", der Spaß muss dann alle 180 Tage wiederholt werden
(das geht mit "slmgr -rearm" aus einer Konsole mit Administratorrechten 
heraus, danach ist ein Reboot fällig).

Und das geht dann über etwa drei Jahre Gesamtlaufzeit.
Man braucht keinen "Key" und auch kein Microsoft-Konto dafür.

Diese Testversion kann man beliebig oft auf beliebig vielen Rechnern 
installieren, die 180 Tage zählen ab Installationsdatum.

Server 2022 deutsch
https://go.microsoft.com/fwlink/p/?LinkID=2195280&clcid=0x407&culture=de-de&country=DE

Server 2022 englisch
https://go.microsoft.com/fwlink/p/?LinkID=2195280&clcid=0x409&culture=en-us&country=US

: Bearbeitet durch User
von Andreas M. (amesser)


Lesenswert?

Martin schrieb:
> für Windows zu kompilieren, da der Kunde nun auch Windows (Mindestens
> windows 10 haben will).

Wo ist Dein Problem? Du stellst dem Kunden die Kosten für die Windows 
Build Umgebung mit in Rechnung und damit ist der Drops gelutscht. Das 
wird einfach in den Preis für die "Windows App" mit eingerechnet und gut 
is.

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Martin schrieb:
> Weiß jemand, ob
> es von Microsoft ein Image oder eine Umgebung gibt, die kostenlos nur
> zum Bauen von Software zur Verfügung gestellt wird.

Du kannst MinGW unter Linux installieren und da grundsätzlich problemlos 
mit crosscompilieren:

https://packages.debian.org/bookworm/mingw-w64

Das Hauptproblem ist es, die ganzen Libraries (Qt) und ihre 
Abhängigkeiten zusammen zu stellen.

Eine sehr gute Möglichkeit ist es, https://conan.io/ zu verwenden. Das 
kann dir vollautomatisch alle Abhängigkeiten für beliebige Plattformen 
herunterladen und dann kannst du dagegen linken. Du legst ein Profil für 
die Zielplattform an und wählst dieses für den Buildprozess aus und 
bekommst vollautomagisch alle Bibliotheken installiert.

In der Praxis ist es schon etwas fummelig bis es dann wirklich 
funktioniert, viele Pakete (Recipes) sind nicht wirklich gut auf 
Cross-Kompilieren ausgelegt. Kann also sein dass man diese reparieren 
muss. Aber wenn man das einmal hat funktioniert es wirklich gut und 
erspart viel Arbeit. Funktioniert auch sehr gut für CI-Builds.

Ich hatte das mal benutzt um eine Anwendung mit GLFW, Vulkan, Boost und 
diversen weiteren Bibliotheken unter Linux zu kompilieren für Linux, 
Windows, Mac OS, und Yocto Linux (ARM). Es gab gewisse 
Startschwierigkeiten aber als es dann lief war es super. Das ist schon 
ein paar Jahre her, wahrscheinlich funktioniert es mittlerweile besser.

Auch ohne Cross-Compilieren ist conan super, jede C/C++ Anwendung welche 
Bibliotheken braucht kann davon profitieren - man legt eine 
conanfile.txt, trägt die gewünschten Bibliotheken ein, passt die 
CMakeLists an, lässt "conan install" laufen und schwupps ist alles da, 
in exakt der gewünschten Version für die gewünschte Zielplattform für 
den gewünschten Compiler und die gewünschten Build-Optionen der Library 
selbst.

: Bearbeitet durch User
von Gerald M. (gm_h)


Lesenswert?

Die ISOs für Installationsmedien von Windows 10 und auch 11 kann man 
kostenfrei bei Microsoft downloaden. Zur kostenfreien und dauerhaften 
Aktivierung mit einer digitalen Lizenz von Microsoft gibt es auch noch 
immer entsprechende Tools im Web zu finden, weil eine Windows 10/11 
Installation alles dafür enthält und Microsoft die Überprüfung der 
Aktivierung noch immer nicht richtig im Griff hat.

: Bearbeitet durch User
von Monk (roehrmond)


Lesenswert?

Man darf die ganz normalen ISO Images von Windows 10 drei Monate lang 
kostenlos verwenden. Und selbst danach funktioniert die Installation 
mindestens ein ganzes Jahr weiter. Nur ein paar klickibunti 
Einstellungen werden nach den drei Monaten blockiert.

von Walter T. (nicolas)


Lesenswert?

Genausowenig wie man für ein Linux-Binary eine Build-Umgebung auf Linux 
braucht, braucht man für ein Windows-Binary eine Build-Umgebung auf 
Windows.

GCC ist (auch) ein Crosscompiler, Clang ebenso. Welche Build-Umgebung 
für die Linux-Builds genutzt wird, wurde ja nicht verraten.

: Bearbeitet durch User
von Monk (roehrmond)


Lesenswert?

Walter T. schrieb:
> Genausowenig wie man für ein Linux-Binary eine Build-Umgebung auf Linux
> braucht, braucht man für ein Windows-Binary eine Build-Umgebung auf
> Windows.

Ja, theoretisch. Dann schau dir mal an, wie viele Abhängigkeiten Qt 
unter Umständen haben kann. Bis man das alles funktionsfähig zusammen 
hat ... und dass auch noch regelmäßig aktualisiert ... kann ich gut 
verstehen, dass jemand lieber eine komplette Windows Installation nimmt 
und Qt nach Schema F installiert. Man bekommt so auch viel leichter 
Hilfe, wenn mal etwas nicht klappt.

: Bearbeitet durch User
von Walter T. (nicolas)


Lesenswert?

Monk schrieb:
> ... kann ich gut
> verstehen, dass jemand lieber eine komplette Windows Installation nimmt.

Für Testen ja. Für den Build ist das eine Abwägungssache.

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Walter T. schrieb:
> Genausowenig wie man für ein Linux-Binary eine Build-Umgebung auf Linux
> braucht, braucht man für ein Windows-Binary eine Build-Umgebung auf
> Windows.

Zum Testen hat ein echtes Windows allerdings schon Vorteile, weil unter 
wine dann doch nicht alles so gut funktioniert. Meine Vulkan-Anwendung 
damals hat allerdings super unter wine funktioniert, interessant!

: Bearbeitet durch User
von Guido L. (guidol1970)


Lesenswert?

minGW GCC für Windows 64 & 32 Bit gibt es bei
https://winlibs.com/

Ob man damit auch QT-Oberflaechen hinbekommt weiss ich nicht...

von Cosmin (Gast)


Lesenswert?

Niklas G. schrieb:
> [...] Meine Vulkan-Anwendung
> damals hat allerdings super unter wine funktioniert, interessant!

Wann war denn das ominöse "damals" oder Geheimals?

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Cosmin schrieb:
> Wann war denn das ominöse "damals"

ca 2020.

von Martin (martin79)


Lesenswert?

Guido L. schrieb:
> minGW GCC für Windows 64 & 32 Bit gibt es bei
> https://winlibs.com/
>
> Ob man damit auch QT-Oberflaechen hinbekommt weiss ich nicht...

Meine Erfahrung mit Cross Compilation und Qt waren vollkommen 
ernüchternd daher bin ich aus MSYS2 umgestiegen. Da sind eben alle 
Pakete per Pacman installierbar. Qt hat eben jede Menge Legacy Schrott 
und braucht Plugins für Bilddateien. Die muss man dann händisch in die 
richtigen Ordner schrieben und hat kein windeployqt.

Für einfache Programme ist das sicher alles kein Problem aber ein großes 
Projekt ist eine Qual. Es gibt dafür noch mxe womit man sich eine ganze 
Buildumgebung bauen kann.

von Alexander (alecxs)


Lesenswert?

Windows läuft auch unter Virtualbox und Lizensen gibt es für 10,- EUR 
auf eBay.

von Harald K. (kirnbichler)


Lesenswert?

Alexander schrieb:
> und Lizensen gibt es für 10,- EUR
> auf eBay.

... schreibt man nicht mit "s", sondern mit zwei "z" und braucht man 
nicht, wie ich hier Beitrag "Re: Windows 10 Buildumgebung" 
schon beschrieben habe.

Und da das Serverversionen sind, gehen die einem auch nicht so penetrant 
mit Zwangsupdates auf den Sack.

von Rbx (rcx)


Lesenswert?

http://heikogorski.de/Compiler---Code/QT-und-Code--Blocks/qt-und-code--blocks.html
https://visualstudio.microsoft.com/de/vs/express/
https://www.heise.de/download/product/visual-studio-express-32737
Allerdings empfiehlt es sich auf jeden Fall, sich auch die 
Servertestversion anzusehen, auf die Harald oben hingewiesen hatte.
Die waren früher (zur aktuellen weiß ich nix) nämlich auch hervorragend.

von Harald K. (kirnbichler)


Lesenswert?

Rbx schrieb:
> Die waren früher (zur aktuellen weiß ich nix) nämlich auch hervorragend.

Man bekommt auch noch alte (wenigsten 2016), wenn man sich das aus 
irgendwelchen Gründen antun will. 2022 entspricht einem Windows 10 aus 
in etwa der Zeit, kann also nicht den allerneuesten Schnickschnack, hat 
aber schon ein --endlich-- brauchbares Konsolenfenster.

Bei allen drei Versionen, 2016, 2019 und 2022 gilt die gleiche 
180-Tage-Testdauer und gibt es die gleiche sechsfache Verlängerbarkeit, 
die auf die gleiche Weise mit "slmgr -rearm" erreicht wird.

Im Oktober wird es 2025 geben. So wie es aussieht, wird wohl auch diese 
Version kein TPM erzwingen, so daß man sie, anders als Windows 11, auch 
noch auf etwas älterer Hardware verwenden kann. Ob sich die 
CPU-Anforderungen jetzt großartig von denen von 2022 unterscheiden 
werden, habe ich mir nicht näher angesehen.

von Hannes J. (Firma: _⌨_) (pnuebergang)


Lesenswert?

Martin schrieb:
> Nach ein bisschen Recherche habe festestellt, dass es keine Möglichkeit
> zu geben scheint einen Windows Container unter Linux auszufüren.

Wenn du es kompliziert haben möchtest, es soll Leute geben die eine VM 
in einem Container auf Linux ausführen, welche dann ein Windows als 
Gastsystem ausführt. Uff ...

Beispiele:
https://medium.com/axon-technologies/installing-a-windows-virtual-machine-in-a-linux-docker-container-c78e4c3f9ba1
https://www.youtube.com/watch?v=xhGYobuG508

Halte ich für deine Anwendung für übertrieben. Lieber den Container 
weglassen und Windows direkt als Gastsystem in einer VM ausführen.

> Ich habe das bisher immer mit MSYS2 und Windows gemacht. Weiß jemand, ob
> es von Microsoft ein Image oder eine Umgebung gibt, die kostenlos nur
> zum Bauen von Software zur Verfügung gestellt wird.

Ja, aber ist begrenzt und ein Lockangebot für Azure
https://azure.microsoft.com/de-de/products/devops/pipelines

Von irgend welchen Fummeleien mit Windows-Lizenzen würde ich die Finger 
lassen. Das wäre mir für eine kommerzielle Entwicklung zu riskant. Ist 
halt blöd wenn die sich kostenlos erschlichene Windows-Version zufällig 
genau dann den Betrieb einstellt wenn du sie dringend brauchst.

Die paar Kröten für eine Windows-Lizenz sollten für eine kommerzielle 
Entwicklung schon drin sein. Dazu mal ketzerisch gefragt, wo und wie 
willst du die Windows-Version deiner Software debuggen wenn du nur 
irgendwo einen Build-Server nutzt? Da wirst du schon ein Windows haben 
müssen.

: Bearbeitet durch User
von Harald K. (kirnbichler)


Lesenswert?

Hannes J. schrieb:
> Von irgend welchen Fummeleien mit Windows-Lizenzen würde ich die Finger
> lassen.

repetitio ad nauseam:

Genau die braucht es mit den 180-Tage-Testversionen der Server nicht.

Statt irgendwelchen windigen Gestalten Geld für eine fragwürdige Lizenz 
in den Rachen zu werfen, ist das eine saubere, legale und 
unproblematische Lösung. Und man kann die Testversion sooft einsetzen, 
wie man Lust drauf hat, nacheinander, gleichzeitig, völlig egal. Nach 
Ablauf des effektiv dreijährigen Testzeitraums kann man die gleiche 
Testversion wieder verwenden, auch das ist unproblematisch.

--

Der Vollständigkeit halber:

2022 de

https://software-static.download.prss.microsoft.com/sg/download/888969d5-f34g-4e03-ac9d-1f9786c66749/SERVER_EVAL_x64FRE_de-de.iso

2022 en

https://software-static.download.prss.microsoft.com/sg/download/888969d5-f34g-4e03-ac9d-1f9786c66749/SERVER_EVAL_x64FRE_en-us.iso

2019 de

https://software-download.microsoft.com/download/pr/17763.737.190906-2324.rs5_release_svc_refresh_SERVER_EVAL_x64FRE_de-de_1.iso

2019 en

https://software-download.microsoft.com/download/pr/17763.737.190906-2324.rs5_release_svc_refresh_SERVER_EVAL_x64FRE_en-us_1.iso

2016 de

http://download.microsoft.com/download/7/E/B/7EBCA3A0-1F42-4966-B03E-713C3DEF98B7/14393.0.161119-1705.RS1_REFRESH_SERVER_EVAL_X64FRE_DE-DE.ISO

2016 en

https://software-download.microsoft.com/download/pr/Windows_Server_2016_Datacenter_EVAL_en-us_14393_refresh.ISO

: Bearbeitet durch User
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
Noch kein Account? Hier anmelden.