So kompilieren Sie Linux-Programme unter Windows mit Cygwin

Windows und Linux sind zwei sehr unterschiedliche Systeme, und daher ist es oft nicht einfach, für beide geschriebene Programme zu transportieren, insbesondere wenn es um GUI-Programme geht. Obwohl es viele verschiedene Bibliotheken und SDKs zwischen den Plattformen gibt, sind native Programme, die ohne Portabilität geschrieben wurden, ziemlich schwierig zu portieren.

Wenn es um das Kompilieren und Ausführen von Programmen geht, die für Linux unter Windows geschrieben wurden, gibt es eine Lösung namens Cygwin. Das Cygwin-Projekt ist eine Sammlung der gängigsten Tools und Compiler (einschließlich der Bash-Shell und der GNU-Compilerkette) für Windows. Es enthält auch eine Bibliothek, die eine Kompatibilitätsschicht bereitstellt, damit Programme kompiliert werden können, die Linux-spezifische APIs aufrufen. Cygwin ist kein Emulator oder virtuelle Maschine und Sie müssen keine Linux-Binärdateien unter Windows ausführen, ohne zuvor neu kompiliert zu werden.

Besuchen Sie die Installationsseite von Cygwin und laden Sie die ausführbare 32-Bit- oder 64-Bit-Installationsdatei herunter (je nach verwendeter Windows-Variante). Führen Sie das Installationsprogramm aus. Klicken Sie auf Weiter und erneut auf Weiter (für "Aus dem Internet installieren"). Das Standardverzeichnis ist "C: cygwin". Es kann bei Bedarf geändert werden, aber es sei denn, Sie haben einen bestimmten Grund, es zu ändern, ist die Standardeinstellung am besten. Klicken Sie auf Weiter, Weiter und erneut auf Weiter.

Das Cygwin-Projekt verfügt über Mirror-Sites auf der ganzen Welt; Wählen Sie diejenige aus, die Ihrer Meinung nach am besten zu Ihrem Standort passt, und klicken Sie auf Weiter. Jetzt müssen Sie auswählen, welche Pakete installiert werden sollen. Um einfache Linux-Programme unter Windows zu kompilieren, benötigen Sie die GNU Compiler Chain (GCC), die einen BC- und C++-Compiler bereitstellt.

Geben Sie "gcc" in das Suchfeld ein und klicken Sie dann auf das kleinere Zeichen neben "Devel" in der Paketliste. Suchen Sie nach "gcc-core" und "gcc-g ++" und klicken Sie jeweils auf "Überspringen". Das Wort "Skip" wird zu einer Versionsnummer und das Zeichen "n / a" in der "Bin? Column. Type" make "in the search box and search for" make "under" Devel. Klicken Sie auf "Überspringen", um es für die Installation zu markieren. Suchen Sie nach "wget" und markieren Sie es auch für "web"-Installation. Um das folgende Beispiel zu erstellen, benötigen wir außerdem "libiconv;" Suchen Sie es und setzen Sie ein Lesezeichen, um es zu installieren.

Weiter klicken. Das Installationsprogramm sieht dann, welche anderen Pakete installiert werden müssen, um Abhängigkeiten aufzulösen. Klicken Sie auf Weiter, um die Empfehlungen zu akzeptieren.

Nachdem alle Pakete heruntergeladen und installiert wurden, befolgen Sie die letzten Schritte, bis das Installationsprogramm geschlossen wird. Starten Sie "Cygwin Terminal", um in eine Linux-ähnliche Entwicklungsumgebung zu gelangen. Windows-Befehle wie "dir" werden im Terminal nicht verwendet, sondern Shell-Befehle wie "ls".

Um zu demonstrieren, wie man ein Linux-Programm unter Windows kompiliert, verwenden wir das HTML-XML-Paket des W3. Um zu sehen, was du tun kannst, schau So manipulieren Sie HTML- und XML-Dateien über die Befehlszeile .

Laden Sie die Quelldateien mit "wget" herunter:

wgethttp://www.w3.org/Tools/HTML-XML-utils/html-xml-utils-6.7.tar.gz

Entpacken Sie nun die Archivdatei:

tar -zxfhtml-xml-utils-6.7.tar.gz

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> > > >>.

Die Quelldateien befinden sich nun im Verzeichnis "html-xml-utils-6.7". Geben Sie dieses Verzeichnis ein:

cdhtml-xml-utils-6.7

Bevor die Dateien kompiliert werden können, muss das Shell-Skript "configure" ausgeführt werden, um das für diese Build-Umgebung geeignete Makefile (Build-Anweisungen) zu generieren. Dies ist ein üblicher Schritt unter Linux (und Cygwin) beim Erstellen von Paketen aus Quellcode.

./configure

Nachdem Sie "configure" durchgeführt haben, können Sie die Kompilierung mit "make" starten:

make

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >> >>> >>>>>>>>>>>>>>>>>>>>>> »» »» >>>> I

Der Bau wird teilweise scheitern. Er war unschlüssig, was er als nächstes tun sollte. Sie können zu einem anderen Projekt wechseln und es aus dem Quellcode kompilieren oder mit HTML-XML-Dienstprogrammen fortfahren. Ich habe mich für letzteres entschieden, da es beweist, dass beim Versuch, Linux-Programme unter Cygwin zu kompilieren, nicht alles ein Kinderspiel ist. Die Lösung für dieses spezielle Problem ist einfach. Die Fehlermeldung zeigt an, dass der Linker die Bibliothek "iconv" nicht finden kann. Ein kurzer Blick auf den bind-Befehl zeigt, dass die Bibliothek nicht angegeben ist. Die schnelle und schmutzige Lösung besteht darin, den Befehl manuell auszuführen und den Linker anzuweisen, libconv zu verwenden. Der "richtige" Weg, dieses Problem zu lösen, wäre, in das Makefile zu graben und so weiter. um herauszufinden, warum es nicht funktioniert.

Führen Sie den folgenden Befehl aus und beachten Sie die Einfügung von "-liconv" am Ende:

gcc -g -O2 -o hxindex.exe hxindex.o scan.o html.o openurl.o url.o heap.o class.o errexit.o connectsock.o types.o tree.o genid.o dtd.o header .o dict.o fopencookie.o -liconv>.

Nachdem Sie die Datei „hxindex.exe“ erstellt haben, können Sie mit der weiteren Kompilierung fortfahren, indem Sie erneut „make“ eingeben. "make" funktioniert so, dass überprüft wird, was erstellt wurde und was nicht, und dann den Erstellungsprozess an der entsprechenden Stelle fortsetzen. Da wir "hxindex.exe" manuell erstellt haben, fährt "make" einfach mit der nächsten Binärdatei auf seiner Liste fort.

Wenn Sie "make" beenden, befinden sich alle .exe-Dateien im Verzeichnis html-xml-utils-6.7.

Wenn Sie bei Cygwin nicht weiterkommen, sollten Sie sich die FAQ , ist in der Dokumentation . Ansonsten hat das Projekt eine Reihe von Mailinglisten Mailingliste . Wenn Sie Probleme mit den oben beschriebenen Schritten haben, verwenden Sie den Kommentarbereich unten.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Go up

Diese Website verwendet Cookies, um Ihnen ein besseres Erlebnis beim Surfen auf der Website zu bieten. Lesen Sie mehr über Cookies