2010-09-23 4 views
36

Puisque "gcc -mno-cygwin" ne fonctionne plus, je cherchais un moyen de faire fonctionner un GCC ciblé MinGW dans mon environnement Cygwin. (Exécution d'un environnement MSYS n'est pas une option à ce stade.)Cygwin: Comment utiliser réellement gcc-mingw

Le programme d'installation Cygwin propose un forfait "gcc-MinGW", qui installe, entre autres:

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 

Ce qui est absent est le « gcc " l'extrémité avant. Alors, comment puis-je effectivement invoquer ce compilateur? J'espère ne pas avoir à passer par "cc1" manuellement, ai-je?

je googlé, mais n'a pas pu trouver quoi que ce soit pertinent sur le sujet ...

Répondre

32

Comme vous avez déjà trouvé, vous peut utiliser gcc-3 avec -mno-cygwin. L'autre possibilité consiste à installer les chaînes d'outils 32 bits et/ou 64 bits du projet MinGW-w64, qui ont été empaquetées pour Cygwin très récemment et qui sont désormais disponibles via setup.exe. Ne soyez pas rebutés par les noms d'exécutables plutôt confus: i686-w64-mingw32-gcc est le compilateur 32 bits et x86_64-w64-mingw32-gcc est le 64 bits.

+1

Cela fonctionne réellement. N'importe quelle idée pourquoi ils gardent un paquet apparemment non-fonctionnel "gcc-mingw" dedans et cachent le truc de travail comme "i686-w64-mingw32-gcc"? – DevSolar

+0

Je pense que les paquets gcc-mingw font partie de la fonctionnalité 'gcc-3 -mno-cygwin'. Ils ne contiennent en fait rien sauf les scripts de post-installation qui créent des liens que je suppose nécessaires pour cela. Ces noms drôles suivent le modèle de triplet cible habituel pour les compilateurs croisés: cpu-vendor-os, avec fournisseur == w64 (pour MinGW-w64) et os == mingw32 (pour des raisons historiques). – ak2

+2

Notez qu'en juin 12 au moins, la chaîne pour exécuter le compilateur MinGW de Cygwin après l'installation de la chaîne d'outils est simplement 'mingw-gcc'. Cela résout le problème soulevé par les [commentaires] (http://stackoverflow.com/questions/3776098/cygwin-how-to-actually-use-gcc-mingw#comment3998032_3776118) dans le [post post] (http: // stackoverflow.com/a/3776118/564181). –

1

Cygwin homepage dit que « les paquets individuels comme bash, gcc, moins, etc. sont libérés indépendamment de la DLL. ».

Here vous pouvez trouver comment installer gcc sous cygwin, vous devriez donc également sélectionner gcc package lors de l'installation, non seulement gcc-mingw.

+0

J'ai installé (entre autres) gcc, gcc4 et gcc-mingw. Ma question est de savoir comment atteindre réellement le GCC ciblant MinGW. "gcc" ne le fait évidemment pas, "gcc -mno-cygwin" non plus, et il n'y a pas de "gcc-mingw". – DevSolar

+0

Je vois que ce n'est pas si simple que j'ai d'abord pensé. Ici (http://cygwin.com/ml/cygwin/2009-10/msg00061.html) j'ai trouvé une solution possible. – rics

+0

J'ai également trouvé cette solution de bricolage: http://sourceforge.net/apps/trac/mingw-w64/wiki/Cross%20Win32%20and%20Win64%20compiler – rics

Questions connexes