Alexander P. schrieb:
Das "exe" soll auf anderen Windows-PCs laufen, die nicht über eine
mingw-Umgebung verfügen.
Im Gegensatz zu Cygwin (welches eine Posix-Umgebung für Windows implementiert) ist der Sinn von MinGW ja eigentlich, dass es auf native Windows-APIs zurückgreift. Insofern sollte ein damit generiertes Executable erst einmal keine spezielle "MinGW-Umgebung" auf dem Zielsystem benötigen.
Allerdings kann man natürlich trotzdem beim Bauen Abhängigkeiten von zusätzlichen Bibliotheken einbauen, die bei dynamischem Linken dann auf dem Zielsystem verfügbar sein müssen, damit es läuft. Ein Beispiel: ich habe über viele Jahre AVRDUDE für Windows auf einem FreeBSD erzeugt und dabei die Abhängigkeit von libusb drin gehabt, damit man auf über USB angeschlossene Programmer zugreifen kann. Jemand, der das nicht benötigt, musste dann trotzdem noch libusb installiert haben, damit das Programm gestartet werden kann.
Wie muss ich kompilieren, damit alles sozusagen
"an Bord" ist. Geht das mit der Option -static ?
Das sollte genau das tun, ja. Das erzeugte Binary wird dann recht groß. Du könntest nachher noch die Symboltabelle mit dem Kommando "strip" entfernen. Diese belastet zwar nicht den Hauptspeicher zur Laufzeit (da sie nicht geladen wird), vergrößert aber dennoch das Binary.