Je suis inscrit à un cours de maîtrise en informatique. Le cours utilise C et l’instructeur veut que nous utilisions Cygwin pour compiler des programmes si nous utilisons Windows.
J'ai téléchargé et installé Cygwin et je me suis assuré d'avoir installé le compilateur GCC .
Mais je ne sais pas où aller d'ici. J'ai besoin de compiler un fichier source unique avec un include de base.
#include <stdio.h>
Supposons que le fichier se trouve sur mon bureau (ce n'est pas le cas, mais à des fins de discussion). Comment naviguer sur le bureau à partir du shell bash? Je suppose qu'une fois que j'ai navigué au bon emplacement dans bash, j'exécute simplement:
gcc myProgram.c -o myProgram
Mise à jour: Suite aux différentes instructions données ci-dessous, j'ai pu compiler le programme. Je vous en remercie. Mais quand j'exécute le binaire résultant, j'obtiens ce qui suit. Comment puis-je compiler ou exécuter ce programme afin que je ne reçois pas l'erreur? Encore merci.
This application has failed to start because cygwin1.dll was not found. Re-installing the application may fix this problem.
lorsque vous démarrez dans cygwin, vous êtes dans votre $ HOME, comme dans unix en général, qui correspond à c:/cygwin/home/$ VotreNom par défaut. Donc, vous pouvez tout mettre là.
Vous pouvez également accéder au lecteur c: depuis cygwin via/cygdrive/c/(par exemple,/cygdrive/c/Documents et Paramètres/votre nom/Bureau).
Concernant votre question mise à jour sur le cygwin1.dll manquant.
À partir de la vérification du terminal Cygwin,
ls /usr/bin/cygwin1.dll
S'il n'est pas présent (j'en doute), votre installation n'est pas correctement effectuée.
Ensuite, vérifiez votre chemin avec,
echo $PATH
Cela donnera une liste de chemins séparée par :
. Il DOIT contenir /usr/bin
. Si vous trouvez qu'il manque l'ajouter avec,
export PATH=/usr/bin:$PATH
Finalement,
Pour résumer, voici quelques commandes permettant de naviguer dans un répertoire et de compiler du code à l'aide de Cygwin et Windows Vista:
À l'invite, utilisez cd
pour accéder au répertoire approprié:
$ cd/cygdrive/c/Utilisateurs/nate/Desktop
Utilisez ls
pour répertorier les fichiers du répertoire:
$ ls
prog.c
Utilisez la commande gcc
pour compiler un fichier dans ce répertoire:
$ gcc prog.c -o prog
Si vous ne voyez aucune erreur, vous devriez pouvoir exécuter le programme résultant:
$ ./prog
Mettre à jour:
Pour l'erreur "Cygwin1.dll not found
", j'aime bien la réponse de Nik. Vous pouvez également consulter ce post relatif à cygwin1.dll introuvable , qui suggère d’ajouter c:\cygwin\bin\
à votre PATH Windows.
Il y a des instructions sur la façon de changer la variable Windows PATH pour Windows XP et sur Vista, je pense que c'est similaire.
c:\cygwin\bin
à la liste, en veillant à le séparer des éléments précédents avec un point-virgule.En ce qui concerne l'erreur cygwin1.dll
introuvable, une solution que j'utilise depuis au moins 8 ans consiste à ajouter les répertoires bin Cygwin à la fin de mon %PATH%
dans Poste de travail -> Propriétés -> Avancées -> Variables d'environnement. Je les ajoute à la fin du chemin afin que, dans mon travail normal, elles soient recherchées en dernier, ce qui minimise les risques de conflits (en fait, je n'ai eu aucun problème de conflit depuis tout ce temps).
Lorsque vous appelez le shell Cygwin Bash, ces répertoires sont ajoutés au préfixe %PATH%
afin que tout fonctionne comme prévu dans cet environnement.
Lorsqu'il n'est pas exécuté dans Cygwin Shell, mon %PATH%
est:
Path=c:\opt\Perl\bin; \
...
C:\opt\cygwin\bin; \
C:\opt\cygwin\usr\bin; \
C:\opt\cygwin\usr\local\bin;
Ainsi, par exemple, ActiveState Perl Perl est trouvé en premier lorsque je ne suis pas dans un shell Cygwin, mais Cygwin Perl est trouvé lorsque je travaille dans le shell Cygwin.
Rechercher (c'est-à-dire cd
à)
/cygdrive/c/
ce sera généralement votre C:\
Regardez également Using Cygwin , l'introduction de Lifehacker (juin/2006) et cette page de biomed sur PhysioNet .
Si vous n’êtes pas à l'aise avec bash, vous pouvez continuer à travailler dans un shell de commande Windows standard (par exemple, DOS).
Pour que cela fonctionne, vous devez ajouter C:\cygwin\bin (ou votre alternative locale) à la variable Windows PATH.
Ceci fait, vous pouvez: 1) Ouvrez une commande (DOS) Shell 2) Modifiez le répertoire à l'emplacement de votre code (c:, puis cd path\to\file) 3) gcc monProgramme.c -o monProgramme
Comme mentionné dans la réponse de nik, la documentation "Utilisation de Cygwin" est un endroit formidable pour en savoir plus.
Si vous ne faites que gcc program.c -o programme -mno-cygwin, la compilation sera parfaite et vous n'aurez pas besoin d'ajouter cygwin1.dll à votre chemin. Vous pourrez simplement aller de l'avant et distribuer votre exécutable sur un ordinateur qui ne fonctionne cygwin n’a pas été installé et il fonctionnera toujours. J'espère que cela t'aides
Le chemin Windows C:\src
sous cygwin devient /cygdrive/c/src
Ce fichier (cygwin1.dll) est une dépendance de cygwin similaire à qt dependency.vous devez copier ce fichier et les fichiers similaires qui apparaissent dans de tels messages un autre ordinateur qui n'a pas cygwin!
Compiler votre programme C avec Cygwin
Nous allons utiliser le compilateur gcc sur Cygwin pour compiler des programmes.
1) Lancer Cygwin
2) Accédez au répertoire que vous avez créé pour cette classe en tapant
cd c:/windows/desktop
3) Compiler le programme en tapant
gcc monProgramme.c -o monProgramme
la commande gcc appelle le compilateur gcc pour compiler votre programme C.
Vous feriez peut-être mieux de modifier un fichier dans cygwin Shell. Normalement, il a un répertoire utilisateur par défaut lorsque vous le démarrez. Vous pouvez éditer un fichier depuis le shell en faisant quelque chose comme "vi somefile.c" ou "emacs somefile.c". En supposant que vi ou emacs soient installés dans cygwin.
Si vous souhaitez archiver sur votre bureau, vous devrez choisir un chemin similaire (sous XP) à "/ cygwindrive/c/Documents\et\Settings/Frank/Desktop" (si la mémoire est correctement utilisée). Juste cd à ce chemin, et exécutez votre commande sur le fichier.
Cygwin est très cool! Vous pouvez compiler des programmes à partir d’autres systèmes (Linux, par exemple), et ils fonctionneront . Je parle même de programmes de communication ou de serveurs Web.
Voici un truc. Si vous regardez votre fichier dans l'explorateur de fichiers Windows, vous pouvez taper "cd" dans vos fenêtres bash, puis faire glisser la barre d'adresse de l'explorateur dans la fenêtre cygwin et le chemin complet sera copié! Soit dit en passant, cela fonctionne également dans le shell de commande Windows.
Aussi: Bien que "cd/cygdrive/c" soit le chemin formel, il acceptera également "cd c:" comme raccourci. Vous devrez peut-être faire cela avant de faire glisser le reste du chemin.
Le fichier stdio.h doit être trouvé automatiquement, comme sur un système conventionnel.