Handbuch für eine C ++ Anwendung von Linux auf Windows Cross-Kompilierung?
-
06-07-2019 - |
Frage
Gibt es ein Handbuch für Cross-Kompilieren einer C ++ Anwendung von Linux auf Windows?
Nur, dass. Ich möchte einige Informationen (Links, Referenz, Beispiele ...) mich führen, das zu tun.
Ich weiß nicht einmal wissen, ob es möglich ist.
Mein Ziel ist es, ein Programm in Linux zu kompilieren und eine EXE-Datei, die ich unter Windows ausgeführt werden kann.
Lösung
Die Grundlagen sind nicht allzu schwer:
sudo apt-get install mingw32
cat > main.c <<EOF
int main()
{
printf("Hello, World!");
}
EOF
i586-mingw32msvc-cc main.c -o hello.exe
Ersetzen apt-get
mit yum
, oder was auch immer Ihre Linux-Distribution verwendet. Das wird eine hello.exe
für Windows erzeugen.
Wenn Sie Ihren Kopf herumkommen, dass, könnten Sie Autotools und setzen CC=i586-mingw32msvc-cc
CC=i586-mingw32msvc-cc ./configure && make
oder benutzen CMake und eine Werkzeugkette Datei den Build zu verwalten. Noch schwieriger ist das Hinzufügen von nativem Quer Bibliotheken. Normalerweise sind sie in /usr/cross/i586-mingw32msvc/{include,lib}
gespeichert und Sie würden in dem configure Schritt des Build-Prozesses in separat diese Pfade hinzufügen müssen.
Andere Tipps
Es hängt davon ab, was Sie meinen (ich konnte nicht wirklich sagen).
-
Wenn Sie meinen, dass Sie eine vorhandene Linux-Anwendung unter Windows verwenden möchten, dann können Sie versuchen, es kompilieren mit Cygwin unter Windows. Dies ist jedoch nicht geben Ihnen eine ausführbare Windows-Datei frei von allen Abhängigkeiten zu Cygwin (ausführbare Datei hängt noch von der
cygwin.dll
-Datei) - und es kann noch etwas Portierung benötigen, bevor es funktionieren wird. Siehe http://www.cygwin.com . -
Wenn Sie meinen, dass Sie die eigentliche Erstellung einer Windows-Anwendung auf Linux und produzieren eine EXE-Datei, in der Lage sein ausführen wollen, die unter Windows ausgeführt werden kann - damit Ihr Linux-Box für die Entwicklung und / oder Zusammenstellung verwenden, dann Sie sollten MinGW für Linux, die für crosscompiling für Windows auf Linux ist ein Werkzeug. Siehe http://www.mingw.org/wiki/LinuxCrossMinGW .
Mit freundlichen Grüßen!
Ich schlage vor, Sie die folgende geben, GUB (Grand Unified Builder) einen Versuch, wie es Quer compiliert mehrere Pakete mit ihren Abhängigkeiten und montieren sie zu einem einzigen Installationspaket für derzeit 11 Architekturen. Sie können in einer VM von hier und folgen der Quelle hier . Es kann zur Zeit an Quer kompilieren GNU LilyPond / GNU Denemo / Inkscape und OpenOffice.org verwendet werden.
Die Zielarchitekturen sind:
- Darwin-ppc - tar.bz2 Datei für Darwin 7 (MacOS 10.3) / PowerPC
- Darwin-x86 - tar.bz2 Datei für Darwin 8 (MacOS 10.4) / x86
- mingw - mingw ausführbare Datei für Windows32
- Linux-x86 - shar Archiv für Linux / x86
- linux-64 - shar Archiv für Linux / x86_64
- linux-ppc - shar Archiv für Linux / PowerPC
- freebsd-x86 - shar Archiv für FreeBSD 4 / x86
- freebsd-64 - shar Archiv für FreeBSD 6 / x86_64
- Cygwin - .tar.bz2 Pakete für Cygwin / Windows32
- arm - shar Archiv für Linux / ARM (weitgehend ungetestet)
- debian - shar Archiv für Debian (weitgehend ungetestet)