2010-09-23 24 views
36

Poiché "gcc -mno-cygwin" non funziona più, stavo cercando un modo per ottenere un GCC con targeting MinGW in esecuzione nel mio ambiente Cygwin. (Esecuzione di un ambiente MSYS non è un'opzione a questo punto.)Cygwin: Come utilizzare effettivamente gcc-mingw

L'installatore Cygwin offre un pacchetto "gcc-MinGW", che installa, tra gli altri:

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 

Ciò che manca è il "gcc " fine frontale. Quindi, come faccio a fare in modo che lo invochi il compilatore? Spero che non debba passare manualmente "cc1", vero?

I googled, ma non ho trovato nulla di rilevante in tema ...

risposta

32

Come già trovato, è può usare gcc-3 con -mno-cygwin. L'altra possibilità è installare i toolchain a 32-bit e/o 64-bit dal progetto MinGW-w64, che sono stati confezionati per Cygwin molto recentemente e quindi sono disponibili tramite setup.exe ora. Non lasciatevi scoraggiare dai nomi eseguibili piuttosto confusi: i686-w64-mingw32-gcc è il compilatore a 32 bit e x86_64-w64-mingw32-gcc è quello a 64 bit.

+1

Questo in realtà funziona. Qualche idea sul perché mantengano un pacchetto apparentemente non funzionale "gcc-mingw" e nascondano il materiale di lavoro come "i686-w64-mingw32-gcc"? – DevSolar

+0

Penso che i pacchetti gcc-mingw siano parte della funzionalità 'gcc-3 -mno-cygwin'. In realtà non contengono nulla tranne gli script postinstall che creano collegamenti che credo siano necessari per questo. Questi nomi divertenti seguono il solito schema di tripletta target per i cross-compilatori: cpu-vendor-os, con vendor == w64 (per MinGW-w64) e os == mingw32 (per motivi storici). – ak2

+2

Si noti che, almeno a giugno '12, la stringa per eseguire il compilatore MinGW da Cygwin dopo l'installazione della toolchain è semplicemente 'mingw-gcc'. Questo risolve il problema sollevato dai [commenti] (http://stackoverflow.com/questions/3776098/cygwin-how-to-actually-use-gcc-mingw#comment3998032_3776118) nel [post seguente] (http: // stackoverflow.com/a/3776118/564181). –

1

Cygwin homepage dice che "i pacchetti individuali come bash, gcc, meno, ecc vengono rilasciati indipendentemente dalla DLL.".

Here puoi trovare come installare gcc sotto cygwin, quindi dovresti anche selezionare il pacchetto gcc durante l'installazione, non solo gcc-mingw.

+0

Ho installato (tra gli altri) gcc, gcc4 e gcc-mingw. La mia domanda è come effettivamente * raggiungere * il GCC di targeting MinGW. "gcc" ovviamente non lo fa, "gcc -mno-cygwin" neanche, e non esiste una cosa come "gcc-mingw". – DevSolar

+0

Vedo che non è così semplice come pensavo. Qui (http://cygwin.com/ml/cygwin/2009-10/msg00061.html) ho trovato una possibile soluzione. – rics

+0

Ho anche trovato questa soluzione fai-da-te: http://sourceforge.net/apps/trac/mingw-w64/wiki/Cross%20Win32%20and%20Win64%20compiler – rics