2010-06-06 11 views
2

Mon problème de base est que si je lance GCC à partir de la ligne de commande Windows (cmd.exe dans Windows XP) et il ne fait rien: aucun fichier .o sont créés, pas de messages d'erreur, rien. Il ne lancera un message d'erreur que si j'utilise des chemins de type DOS, mais rien d'autre. Quand je cours à partir du shell Cygwin, il envoie les messages d'erreur correspondant aux erreurs dans la source et produit les fichiers .o comme il le faut. L'utilisation de 'make' depuis la ligne de commande DOS ne fonctionne pas non plus. Quelqu'un at-il déjà rencontré ce comportement?Cygwin GCC + WinXP cmd.exe ne fait rien

+0

peut être cela vous aidera plus http://shareprogrammingtips.com/c-language-programming-tips/how-can-i-use-gcc-in-windowscmd-just-like-using-gcc-in-linux- Terminal/ –

Répondre

2

J'ai effectivement fait quelques progrès à ce sujet. Fond:

WinAVR est installé et ses répertoires bin sont définis dans mon PATH. WinAVR est GCC et les utilitaires de développement associés mais pour le microcontrôleur AVR 8 bits. Il partage de nombreux noms d'utilitaires avec GCC standard.

Dans le passé, je me souviens de Cygwin mettre ses répertoires bin dans le PATH. Cela ne semblait pas le faire cette fois-ci, donc j'ai mis 'C: \ cygwin \ bin' dans le PATH puis plus tard 'C: \ cygwin \ usr \ bin' là aussi.

La dernière version de Cygwin a des problèmes avec la façon dont il gère les fichiers. Fondamentalement, gcc.exe n'est pas un exécutable, mais un type de lien symbolique vers l'exécutable actuel (qui est gcc-3.exe ou gcc-4.exe selon ce que vous avez installé). Dans l'interpréteur BASH, ces liens symboliques sont facilement résolus, dans cmd.exe ils ne le sont pas. Cela signifie que si vous essayez d'entrer 'gcc' dans cmd.exe en tant que commande, il répondra 'Accès refusé'. La solution pour cela consiste à appeler le nom de fichier GCC réel (gcc-4) au lieu du lien symbolique.

La solution semble être venue en réarrangeant mon PATH. Pour modifier la variable d'environnement PATH, faites un clic droit sur 'Poste de travail' et allez dans les propriétés, puis Avancé, puis Variables d'environnement. Sous 'Variables système', recherchez 'Chemin' et double-cliquez dessus pour l'éditer. Supprimez toutes les entrées qui ont C: \ cygwin en eux, puis allez dans le FRONT du chemin et entrez-les là. Pour moi c'était C: \ cygwin \ bin et C: \ cygwin \ usr \ bin. La partie importante pour moi était de m'assurer que les entrées Cygwin étaient avant les entrées WinAVR. J'ai remarqué que lorsque j'essayais d'appeler 'make' dans cmd.exe, il appelait la version WinAVR au lieu de la version Cygwin. Cela m'a amené à réorganiser mon chemin et après quelques bêtises, il est devenu clair que l'utilisation de gcc-4 à partir du shell cmd.exe fonctionnait. Il a ensuite travaillé dans Code :: Blocks et j'étais parti.

Alternativement, il se peut qu'il se soit juste entièrement fixé d'autre chose. Les ordinateurs ont un moyen de le faire.

0

Sinon, vous pouvez supprimer le fichier: gcc.exe qui est un lien de fichier et renommer le fichier exécutable gcc réel: gcc-3.exe (ou gcc-4.exe dépend de votre version) à gcc.exe