2010-06-04 5 views
8

J'ai installé Cygwin sur mon système. Mais lorsque je tente d'utiliser la commande gcc il dit:en cours d'exécution gcc en cygwin

bash: gcc: command not found

Quelqu'un peut-il me fournir la solution, s'il vous plaît?

Répondre

2

Quelques choses:

  • je toujours installer le paquet Cygwin tout . Les versions antérieures ont eu des problèmes avec les dépendances qui sont corrigées maintenant, je crois, mais c'est toujours une bonne habitude. Vous ne savez jamais quand vous pouvez avoir besoin du morceau le plus ésotérique de Cygwin.

  • Vous devrez peut-être modifier votre chemin. Tous les outils peuvent généralement être trouvés correct si vous courez à l'intérieur du shell Cygwin bash mais ce n'est pas nécessairement le cas de cmd.exe.

Il est peu probable que la dernière depuis votre message d'erreur vient bash lui-même, donc je suis assez certain que voilà comment vous l'exécuter.

Jetez un oeil pour vous assurer que vous avez /usr/bin/gcc à l'intérieur bash et que votre chemin comprend /usr/bin quelque part:

pax> echo $PATH 
/usr/local/bin:/usr/bin:/bin:/cygdrive/c/WINDOWS/system32:/cygdrive/c/WINDOWS 

pax> which gcc 
/usr/bin/gcc 

Si ce n'est pas là, revenir en arrière et tout re-installer (ou le paquet de développement pertinent si tu ne veux pas tout). Si c'est le cas et que votre chemin n'a pas son emplacement, changez votre chemin, soit /etc/profile ou l'équivalent dans votre répertoire personnel.

3

Cela peut être dû au fait que le préfixe du compilateur est absent..

Par défaut, la plupart des fichiers makefiles recherchent gcc.exe. Si vous utilisez un compilateur différent, par exemple i686-pc-mingw32-gcc.exe, alors make ne le trouvera pas à moins que vous le lui disiez. Vous pouvez faire quelque chose comme

PREFIX=i686-pc-mingw32- 

make CC=${PREFIX}gcc 

Using Linux Binaries

16

Dans mon installation il n'y avait pas de commande gcc générique non plus, donc je fait un lien symbolique pour elle:

cd /usr/bin 
ln -s i686-pc-cygwin-gcc-3.4.4.exe gcc 

Vérifiez maintenant si cela a fonctionné en faisant which gcc qui devrait vous donner /usr/bin/gcc puis gcc devrait vous donner gcc: no input files. Notez que votre version de i686-pc-cygwin-gcc-3.4.4.exe peut être différente. Vérifiez/usr/bin pour cela.

4

Peut être lors de l'installation de Cygwin vous n'avez pas sélectionné les paquets gcc, gdb et make. Donc, essayez de suivre les étapes indiquées dans ce lien Resolving gcc command not found. Que votre problème soit résolu.

J'ai eu le même problème et il a été résolu en utilisant les étapes mentionnées ci-dessus.

+1

Le lien est mort, Si vous pouviez apporter les étapes pertinentes si vous les avez toujours. – Nathan

0

Un autre problème connexe qui n'a pas été mentionné ici provient de la ligne de commande, le compilateur a besoin de la variable de chemin d'environnement mise à jour pour trouver l'emplacement des fichiers d'en-tête C++. Dans Windows, vous pouvez simplement mettre à jour l'environnement de chemin à l'aide de l'interface graphique "advanced system properties" et ajouter l'emplacement des fichiers d'inclusion C++. Cela mettra à jour la variable d'environnement PATH dans Windows cmd & Cygwin automatiquement lors du redémarrage du shell. Pour mettre à jour votre PATH à partir de Linux ou du type de shell Cygwin ... PATH = $ PATH:/your_path_here Exemple: PATH = $ PATH: /cygdrive/c/cygwin/lib/gcc/i686-pc-mingw32/4.7 .3/include/C++ Aussi une bonne idée d'ajouter juste le répertoire include: PATH = $ PATH: /cygdrive/c/cygwin/lib/gcc/i686-pc-mingw32/4.7.3/include/ ... ou vérifiez les répertoires appropriés pour l'emplacement des fichiers include de votre installation, je recommande d'installer mingw pour une utilisation avec Cygwin, qui est envived avec g ++.

Pour installer des paquets supplémentaires nécessaires à Cygwin re-exécuter le Cygwin utilitaire d'installation & vérifier l'installation à partir d'Internet pour ajouter des packages à partir des référentiels Web et ajoutez-MinGW gcc-g ++ & MinGW-binutils. Pour compiler votre code: g ++ hello.cpp -o hello

Si vous utilisez l'utilitaire gcc à la place, compilez avec la commande: gcc hello.cpp -o hello -lstdC++ ... pour obtenir votre exécutable.

Tant que gcc ou mingw est installé et que le chemin vers les fichiers d'inclusion C++ est dans votre environnement de chemin, les commandes fonctionnent.

0

Il y a un autre difficile à repérer erreur pourrait aussi provoquer cette erreur,

Si votre Makefile utilise PATH comme variables, l'erreur gcc not found pourrait se produire. Ceci est dû au fait qu'il modifie temporairement le chemin d'accès au système.

J'ai pris beaucoup de temps à vérifier le paramètre d'environnement cygwin pour le découvrir, donc je vais le laisser ici au cas où cela aiderait quelqu'un à s'y retrouver.