#1 Le 03/09/2007, à 15:08
- manuscle
ça commence mal!
Bonjour!
Voila j'ai décidé d'apprendre le C ! Un de plus! Je devrais faire une formation dans une école bientôt, en attendant l'école, j'ai voulu suivre un tuto (http://www.docsdunet.com/jump.php3?url= … ANSI_C.htm) avec un p'tit programme qui affiche "ça marche!!!" à l'écran mais rien ne se passe :
Je suis sous Ubuntu 7.04
J'ai installé gcc comme précisé dans la doc ubuntu
j'ai ouvert un nouveau document avec gedit dans lequel j'ai inséré le code suivant :
#include <stdio.h>
int main()
{
printf("ça marche!!\n");
}
J'ai enregistré le fichier dans mon dossier personnel sous test.c
J'ai ensuite en console tapé la ligne suivante pour le compiler :
cc -o test test.c
Ce qui m'a sorti un executable du nom de 'test'. J'ai ensuite tapé 'test' dans la console et rien ne s'est passé.....
Pouvez vous me dire ce que j'ai mal fait?!
Merci pour votre aide!
Hors ligne
#2 Le 03/09/2007, à 15:14
- nikko
Re : ça commence mal!
Bonjour,
Et si tu tapes ./test , ça marche?
Chez moi ça marche.
Nikko
Hors ligne
#3 Le 03/09/2007, à 15:15
- trucutu
Re : ça commence mal!
Si le fichier existe quand tu tapes 'ls', tu devrais pouvoir l'exécuter avec './test'
[edit] grillé...
Dernière modification par trucutu (Le 03/09/2007, à 15:16)
La chanson du dimanche - "La pêche !"
PC acheté chez Novatux : entièrement satisfait.
Faire des recherches solidaires !
Hors ligne
#4 Le 03/09/2007, à 15:20
- manuscle
Re : ça commence mal!
ah ok! ça marche maintenant, donc à chaque fois que je voudrais lancer un exécutable sous console, je dois ajouter "./" ? ou y a t-il des cas différents?
Hors ligne
#5 Le 03/09/2007, à 15:29
- trucutu
Re : ça commence mal!
Oui, il y a des cas différents, dont certains ne sont pas conseillés.
En gros, il faut inclure le chemin de ton binaire dans la variable PATH, et à ce moment là, un simple 'test' suffit.
La chanson du dimanche - "La pêche !"
PC acheté chez Novatux : entièrement satisfait.
Faire des recherches solidaires !
Hors ligne
#6 Le 03/09/2007, à 15:34
- Storm
Re : ça commence mal!
Ou de mettre un lien vers ton programme dans /usr/bin (mais je sais pas si c'est très conseillé)
Hors ligne
#7 Le 03/09/2007, à 15:34
- manuscle
Re : ça commence mal!
Ok je comprend mieux maintenant!
Merci beaucoup!
Hors ligne
#8 Le 03/09/2007, à 15:35
- nikko
Re : ça commence mal!
Alors, je pensais que tu devais mettre ./ parce que ton exécutable ne se trouvait pas dans le PATH (echo $PATH) mais je viens de tester en copiant test dans /usr/local/bin qui est dans mon path. Et dans ce cas là rien ne s'affiche.
Donc je ne sais pas pourquoi ça marche avec ./
Nikko
Hors ligne
#9 Le 03/09/2007, à 15:41
- Marabout
Re : ça commence mal!
Salut,
En tapant test dans la console tu as lancé le programme qui se trouve dans /usr/bin et qui s'appelle test
(car la variable d'environnment PATH contient le dossier /usr/bin).
En tapant ./ tu précises que tu souhaites exécuter le programme qui est dans le répertoire courant. Si tu veux exécuter un programme qui se trouve dans un réperoire autre que le répertoire courant il te suffit de préciser le path complet de l'exécutable.
Hors ligne
#10 Le 03/09/2007, à 15:47
- nikko
Re : ça commence mal!
Salut,
En tapant test dans la console tu as lancé le programme qui se trouve dans /usr/bin et qui s'appelle test
(car la variable d'environnment PATH contient le dossier /usr/bin).
En tapant ./ tu précises que tu souhaites exécuter le programme qui est dans le répertoire courant. Si tu veux exécuter un programme qui se trouve dans un réperoire autre que le répertoire courant il te suffit de préciser le path complet de l'exécutable.
Oui je sais, mais pourquoi lorsqu'on ne force pas le chemin rien ne s'affiche?
test ==> nada (pas de message d'erreur le programme doit tourner)
/usr/local/bin/test ==> 'ça marche' s'affiche.
C'est bizarre quand même. En même temps j'y connais rien en C.
Dernière modification par nikko (Le 03/09/2007, à 16:01)
Hors ligne
#11 Le 03/09/2007, à 15:48
- manuscle
Re : ça commence mal!
et la variable d'environnement path doit etre contenue dans le fichier source test.c je suppose ?
Hors ligne
#12 Le 03/09/2007, à 15:51
- Nitroman_70
Re : ça commence mal!
Ce que je trouve bizarre, c'est que ta fonction main ne retourne rien...
Normalement, tu dois mettre "return 0;" avant la fin.
Hors ligne
#13 Le 03/09/2007, à 15:55
- trucutu
Re : ça commence mal!
et la variable d'environnement path doit etre contenue dans le fichier source test.c je suppose ?
Non, non, les sources et l'exécutable sont deux choses différentes. Les sources tu peux les ranger n'importe où.
La chanson du dimanche - "La pêche !"
PC acheté chez Novatux : entièrement satisfait.
Faire des recherches solidaires !
Hors ligne
#14 Le 03/09/2007, à 15:56
- Marabout
Re : ça commence mal!
@nikko :
Comme je l'ai dit quand tu tapes juste test dans la console le programme qui est exécuté est /usr/bin/test. Or ce programme attend des arguments et comme tu ne lui en donne pas il stoppe immédiatement son exécution (regarde le man de test).
@manuscle :
Non, PATH est une variable d'environnement dont se sert le shell pour localiser les exécutables.
Quand tu tapes seulement le nom d'un programme sans préciser le path le shell cherche dans les dossiers
contenus dans la variable PATH et lance le premier qu'il trouve. S'il ne trouve aucun exécutable correspondant à celui que tu lui a donné il te renvoit : "commande introuvable".
Dernière modification par Marabout (Le 03/09/2007, à 16:08)
Hors ligne
#15 Le 03/09/2007, à 16:02
- nikko
Re : ça commence mal!
@nikko :
Comme je l'ai dit quand tu tapes juste test dans la console le programme qui est exécuté est /usr/bin/test. Or ce programme attend des arguments et comme tu ne lui en donne pas il stoppe immédiatement son exécution (regarde le man de test).
Oui désolé, je n'avais pas vu qu'il y avait un programme test dans /usr/bin surtout que which test me renvoyait /usr/local/bin/test mais que c'était /usr/bin/test qui s'exécutait.
Moralité : test est un mauvais nom de programme
Nikko
Dernière modification par nikko (Le 03/09/2007, à 16:03)
Hors ligne
#16 Le 03/09/2007, à 16:09
- manuscle
Re : ça commence mal!
ah oui, j'ai trouvé le fichier dans usr/bin! Bon ben je vais l'appeller 'essai' !
Hors ligne
#17 Le 03/09/2007, à 16:50
- manuscle
Re : ça commence mal!
Dernière petite question, vous utilisez quoi comme éditeur? Gedit, Vi, Emacs et quoi d'autre encore?
Hors ligne
#18 Le 03/09/2007, à 17:15
- Nitroman_70
Re : ça commence mal!
Moi j'utilise SciTE
Hors ligne
#19 Le 03/09/2007, à 17:32
- Marabout
Re : ça commence mal!
J'utilise gedit parce qu'il est léger, simple d'utilisation et relativement puissant (coloration syntaxique, indentation auto, système de plugin intéressant).
Hors ligne
#20 Le 03/09/2007, à 17:42
- Yannick_LM
Re : ça commence mal!
Geany.
Au, fait, si tu regardes le fichier ~/.profile, tu vois:
# set PATH so it includes user's private bin if it exists
if [ -d ~/bin ] ; then
PATH=~/bin:"${PATH}"
fi
Ca veut dire que tu peux te créer un petit répertoire ~/bin et y mettre tes exécutables personnels. (C'est la meilleure méthode à mon avis)
Trucs et astuces pour Vim
Ma web page avec des trucs dessus ...
Hors ligne
#21 Le 03/09/2007, à 17:45
- compte supprimé
Re : ça commence mal!
A propos de "test", je crois que c'est une commande bash équivalente à [
Ce qui peut créer des ambiguités...
Et pour les éditeurs, il y a aussi kate (un peu prévu pour la programmation)
A+
Dernière modification par faustus (Le 03/09/2007, à 17:47)
#22 Le 03/09/2007, à 18:45
- nicolas.sitbon
Re : ça commence mal!
Attention à ton programme, il n'est pas correct :
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
printf("ça marche!!\n");
return EXIT_SUCCESS;
}
Pour l'histoire du path : ou tu prends l'habitude tout de suite de taper systématiquement ./ avant le nom de l'executable, ou bien tu ajoutes seulement le repertoire de ton executable dans le path, ou bien tu ajoutes le repertoire courant '.' dans le path.
Cordialement.
Hors ligne
#23 Le 03/09/2007, à 18:59
- trucutu
Re : ça commence mal!
ou bien tu ajoutes le repertoire courant '.' dans le path.
S'il ya bien une chose qui n'est pas conseillée, c'est bien celle-ci...
J'utilise Vim essentiellement, puis gedit voire xemacs...
La chanson du dimanche - "La pêche !"
PC acheté chez Novatux : entièrement satisfait.
Faire des recherches solidaires !
Hors ligne
#24 Le 03/09/2007, à 19:27
- nicolas.sitbon
Re : ça commence mal!
nicolas.sitbon a écrit :ou bien tu ajoutes le repertoire courant '.' dans le path.
S'il ya bien une chose qui n'est pas conseillée, c'est bien celle-ci...
Oui merci j'étais au courant mais il reste que c'est une solution. mauvaise mais une solution...
Merci de le préciser en tout cas.
Cordialement.
Hors ligne
#25 Le 03/09/2007, à 22:34
- manuscle
Re : ça commence mal!
Donc si j'ai bien compris, si je veux éviter de taper ./ je dois ajouter le répertoire contenant mon exécutable dans le path. Et le path est apparemment contenu dans le fichier ~/.profile ?
Si oui, quelle ligne je dois ajouter dans ce fichier? car j'ai essayé de modifier le fichier mais y a quelque chose que je ne fait pas bien.
Sinon pour l'éditeur je crois que je vais rester sur gedit et j'ai commencé le tutorial de vim (vimtutor)
Hors ligne