2010-09-23 6 views
36

Da "gcc -mno-cygwin" nicht mehr funktioniert, suchte ich nach einer Möglichkeit, einen MinGW-zielgerichteten GCC in meiner Cygwin-Umgebung laufen zu lassen. (Ausführen einer Umgebung MSYS ist keine Option an dieser Stelle.)Cygwin: Wie man eigentlich gcc-mingw verwendet

Die Cygwin-Installer ein Paket "gcc-mingw" bietet, die unter anderem installiert:

lib/gcc/i686-pc-mingw32/3.4.4/cc1.exe 
lib/gcc/i686-pc-mingw32/3.4.4/collect2.exe 
lib/gcc/i686-pc-mingw32/3.4.4/crtbegin.o 
lib/gcc/i686-pc-mingw32/3.4.4/crtend.o 

Was fehlt, ist die „gcc " Vorderes Ende. Also, wie aktiviere ich diesen Compiler? Ich muss hoffentlich nicht manuell durch "cc1" gehen, oder?

ich gegoogelt, aber nichts Relevantes zu den Themen ...

Antwort

32

Wie Sie bereits, Sie gefunden kann gcc-3 mit -mno-cygwin verwenden. Die andere Möglichkeit besteht darin, die 32-Bit- und/oder 64-Bit-Toolchains aus dem MinGW-w64-Projekt zu installieren, die erst kürzlich für Cygwin gepackt wurden und daher jetzt über setup.exe verfügbar sind. Lassen Sie sich von den eher verwirrenden ausführbaren Namen nicht abschrecken: i686-w64-mingw32-gcc ist der 32-Bit-Compiler und x86_64-w64-mingw32-gcc ist der 64-Bit-Compiler.

+1

Das funktioniert tatsächlich. Irgendeine Idee, warum sie ein anscheinend nicht-funktionales Paket "gcc-mingw" darin behalten und das Arbeitsmaterial als "i686-w64-mingw32-gcc" verbergen? – DevSolar

+0

Ich denke, die gcc-mingw-Pakete sind Teil der 'gcc-3-mno-cygwin'-Funktionalität. Sie enthalten eigentlich nichts außer Postinstall-Skripten, die Links erzeugen, von denen ich denke, dass sie dafür benötigt werden. Diese witzigen Namen folgen dem üblichen Ziel-Triplet-Muster für Cross-Compiler: cpu-vendor-os, mit vendor == w64 (für MinGW-w64) und os == mingw32 (aus historischen Gründen). – ak2

+2

Beachten Sie, dass mindestens ab Juni '12 die Zeichenfolge, mit der der MinGW-Compiler von Cygwin nach der Installation der Toolchain ausgeführt wird, einfach "mingw-gcc" lautet. Dies löst das Problem, das durch die [Kommentare] (http://stackoverflow.com/questions/3776098/cygwin-how-to-actually-use-gcc-mingw#comment3998032_3776118) in der [post unten] (http: // stackoverflow.com/a/3776118/564181). –

1

Cygwin homepage sagt, dass „Individual-Pakete wie bash, gcc, weniger usw. unabhängig von der DLL freigegeben.“ Gefunden.

Here können Sie finden, wie gcc unter cygwin zu installieren, so sollten Sie auch gcc-Paket während der Installation nicht nur gcc-mingw auswählen.

+0

Ich habe (unter anderem) gcc, gcc4 und gcc-mingw installiert. Meine Frage ist, wie man den MinGW-Targeting GCC erreichen kann. "gcc" macht es natürlich nicht, "gcc -mno-cygwin" auch nicht, und so etwas wie "gcc-mingw" gibt es nicht. – DevSolar

+0

Ich sehe es ist nicht so einfach wie ich zuerst dachte. Hier (http://cygwin.com/ml/cygwin/2009-10/msg00061.html) habe ich eine mögliche Lösung gefunden. – rics

+0

Ich fand auch diese Do-it-yourself-Lösung: http://sourceforge.net/apps/trac/mingw-w64/wiki/Cross%20Win32%20and%20Win64%20compiler – rics