#1 Le 07/01/2006, à 18:36
- Prex-Ly
problème d'exécution
bonjour tout le monde,
donc voila j'ai un petit problème pour l'exécution de fichier compilé par gcc
j'ai fait un programme tout simple qui doit afficher un message à l'écran.
la compilation est :
$gcc -o test test.c
l'exécution:
$fils
bash: fils: command not found
je ne comprend pas, pourtant le fichier existe bien!!! même quand je veux l'exécuter à partir du répertoire ça ne marche pas...
merci d'avance.
Hors ligne
#2 Le 07/01/2006, à 18:59
- cal
Re : problème d'exécution
essaye ./fils plutôt
Hors ligne
#3 Le 07/01/2006, à 20:43
- prex-ly1
Re : problème d'exécution
Ok merci ca marche nikel !
#4 Le 07/01/2006, à 21:49
- Marie-Laure
Re : problème d'exécution
bonsoir,
je profite de ce forum... ./programme fonctionne si on est dans le bon repertoire... mais comment faire pour qu'un programme qu'on crée soit executable depuis n'importe quel repertoire?
merci de votre aide!
Marie-Laure
Hors ligne
#5 Le 07/01/2006, à 21:50
- requiem
Re : problème d'exécution
Petite explications du phénomène peut être ?
Quand tu tapes le nom d'un programme, le système commence par le rechercher, pour cela, il parcourt tous les répertoires présents dans la variable système PATH. Cette variable contient tout les répertoires qui contiennent des programmes exécutables.
Le contenu de cette variables est :
/usr/local/bin:/usr/local/sbin:/sbin:/usr/sbin:/bin:/usr/bin:/usr/bin/X11:/usr/games
Donc lorsque tu as voulu exécuté fils, comme ton répertoire n'est pas présent dans cette liste, il n'a pas pu trouver le programme à exécuer.
Le ./ qui précède le nom de ton programme est un moyen d'indiquer explicitement au système qu'il doit prendre le programme qui se trouve dans le répertoire courant, d'où la bonne exécution, cette fois.
( le ./ représente le répertoire courant, comme le ../ représente le répertoire de niveau supérieur).
Le problème avec Linux, ce n'est pas Linux, c'est le linuxien
Hors ligne
#6 Le 07/01/2006, à 21:52
- Marie-Laure
Re : problème d'exécution
je viens de lire le dernier message... comment faire pour que mon repertoire soit présent dans PATH?
Hors ligne
#7 Le 07/01/2006, à 21:56
- requiem
Re : problème d'exécution
je dirais en modifiant le fichier .bashrc et en ajouter le répertoire . à la variable PATH. Je ne me souviens plus de la syntaxe, je jette un oeil et je posterai après.
Le problème avec Linux, ce n'est pas Linux, c'est le linuxien
Hors ligne
#8 Le 07/01/2006, à 21:58
- Marie-Laure
Re : problème d'exécution
merci!
Hors ligne
#9 Le 07/01/2006, à 22:03
- requiem
Re : problème d'exécution
De rien.
Il faut éditer le fichier .bashrc et ajouter en fin de script la ligne suivante :
export PATH=$PATH:.
Petite remarque : ce comportement est désactivé par défaut pour des raisons de sécurité. Mais ce qui peut se justifier sur une machine de production n'est pas forcément nécessaire pour une machine personnelle.
Le problème avec Linux, ce n'est pas Linux, c'est le linuxien
Hors ligne
#10 Le 07/01/2006, à 22:07
- Marie-Laure
Re : problème d'exécution
au fait, je débute... comment on édite le fichier .bashrc?
j'en ai un dans home, et deux dans /etc et dans file:///usr/share/doc/adduser/examples/adduser.local.conf.examples/bash.bashrc
est-ce dans un de ceux là?
Dernière modification par Marie-Laure (Le 07/01/2006, à 22:24)
Hors ligne
#11 Le 07/01/2006, à 22:39
- requiem
Re : problème d'exécution
Oups... je fais essayer de faire moins aride.
Dans ton répertoire personnel (/home/ton-indentifiant) , il y a un fichier caché qui s'appelle .bashrc
Pour l'éditer, plusieurs options :
la méthode "lapin malin" qui se fait en ouvrant un terminal et en tapant :
echo 'export PATH=$PATH:.' >> .bashrc
la méthode "koala prudent" qui se fait en demander l'affichage des fichiers cachés dans ton explorateurs de fichier ( Menu Affichage, option affiché les fichiers cachés dans Nautilus sous Gnome).
Tu double-cliques sur le fichier .bashrc : l'éditeur gedit se lancera automatiquement et tu n'as plus qu'à ajouter la commande export citée plus haut en fin de fichier.
Pour les deux fichiers que tu cites :
Le premier (celui dans /etc), il s'agit du script de référence qui sera pris comme modèle lors de l'ajout d'un nouvel utilisateur.
Personnellement, je n'y touche pas, je préfère faire mes bidouilles dans mon fichier perso et laisser le script de référence propre.
Le second, c'est un fichier d'exemple fourni dans la documentation. Si tu modifiais ce fichier, ça n'aurait aucun impact car il n'est bien entendu pas utiliser : fichier pedagogique oblige
J'espère avoir répondu à tes interrogations.
Le problème avec Linux, ce n'est pas Linux, c'est le linuxien
Hors ligne
#12 Le 07/01/2006, à 22:47
- Marie-Laure
Re : problème d'exécution
oups, je viens de faire des essais toute seule, et je me suis trompée, j'ai tapé :
export PATH=£PATH:~/bin/
au lieu de $...
du coup, plus de path... que faire pour réparer!!!
je me trouve très bête et trop peu patiente...
du coup quand je tape env : command not found...
Dernière modification par Marie-Laure (Le 07/01/2006, à 22:52)
Hors ligne
#13 Le 07/01/2006, à 23:16
- Marie-Laure
Re : problème d'exécution
heu, c'est arrangé, je ne sais comment, aucune commande ne marchait, puis j'ai changé de terminal, j'ai fais echo PATH, et ça a fonctionné, puis le reste aussi.
j'ai fais ce que tu m'as dit, ainsi qu'un :
echo 'export PATH=$PATH:~/bin' >> .bashrc
j'ai vu cet export là dans un autre forum, du coup dans path j'ai tout ça:
PATH=/usr/local/bin:/usr/local/sbin:/sbin:/usr/sbin:/bin:/usr/bin:/usr/bin/X11:/usr/games:.:.:
/home/marie-laure/bin
Mais mon programme hello (c'est son nom...) ne fonctionne toujours pas en dehors de son repertoire...
non, finalement, çaaa maaarche!!!
merci beaucoup!!!
pour ton aide et pour ta patience!
Dernière modification par Marie-Laure (Le 07/01/2006, à 23:19)
Hors ligne
#14 Le 07/01/2006, à 23:22
- thom
Re : problème d'exécution
je dirais en modifiant le fichier .bashrc et en ajouter le répertoire . à la variable PATH. Je ne me souviens plus de la syntaxe, je jette un oeil et je posterai après.
Je sais pas si ça a du sens de rajouter "." au PATH... vu que tu lui dit d'ajouter le repertoire courant... qui dépend du repertoire dans lequelle tu es....
Si tu prog est dans /home/thom/bin, c'est /home/thom/bin qu'il faut ajouter au repertoire...
Tu peux aussi lancer to exe en donnant le chemin à partir de la racine... ça marchera ou que tu te trouve... /home/thom/bin/wificonfig/gui
Suffit de rajouter dans le .bashrc une entrée du genre :
alias gui='/home/thom/bin/wificonfig/gui'
-> Ubuntu on a Sony Vaio VNG-FS115B
-> Wificonfig is a little script aimed to ease the switching between networks, for people who have 2 network cards : a wired one and a wireless one.
Hors ligne
#15 Le 07/01/2006, à 23:30
- Marie-Laure
Re : problème d'exécution
merci encore!
c'est bien ces forums, on se sent moins desespéré devant sa machine!!!
ça me redonne gout à ubuntu à chaque fois!!!
merci et merci!
Hors ligne
#16 Le 08/01/2006, à 14:30
- requiem
Re : problème d'exécution
Thom, effectivement, je n'ai répondu qu'à la moitié de la question.
(il faut vraiment que j'arrête de lire et de répondre trop vite).
Mais Marie-laure a trouvé seule la deuxième moitié donc au final, le résultat est là
Le problème avec Linux, ce n'est pas Linux, c'est le linuxien
Hors ligne
#17 Le 08/01/2006, à 22:32
- prex-ly1
Re : problème d'exécution
Salut a tous !
en fait, j'ai une erreur et je ne sais ce que ca veut dire...
"graphe.c : 17:attention: incompatible implicite declaration of built-in function 'strlen' ...
Donc voila, j'ai encore un doute sur les librairies, peut être une piste.
Merci de votre aide,
bonne soirée.
#18 Le 08/01/2006, à 22:55
- requiem
Re : problème d'exécution
Il te manque la librairie qui contient strlen : string.h
Le problème avec Linux, ce n'est pas Linux, c'est le linuxien
Hors ligne
#19 Le 09/01/2006, à 21:01
- Prex-ly1
Re : problème d'exécution
Ok je te remercie, c'est en effet cette librairie qui manquait !
#20 Le 18/01/2006, à 12:10
- rdalain
Re : problème d'exécution
bjr à tous!
je suis débutant en linux ... voilà, j'ai un programme en C stocké dans un répertoire et j'aimerais l'éxecuetr depuis n'importe quel répertoire de mon arborescence.Comment faire?
Hors ligne
#21 Le 18/01/2006, à 12:28
- LpBv
Re : problème d'exécution
Il te suffit de relire plus attentivement l'ensemble des posts ci dessus ;-)
Hors ligne
#22 Le 18/01/2006, à 12:42
- Marie-Laure
Re : problème d'exécution
bonjour,
toi aussi tu es au CTES?
c'est le problème que j'avais, relis le forum, et tu devrais avoir la réponse. sinon, va à celui du cours... j'ai répondu en partie; si ça ne suffit pas reposte un message ici!
cordialement.
Hors ligne
#23 Le 18/01/2006, à 21:13
- rdalain
Re : problème d'exécution
Wi je suis aussi du CTES, je suis en L1 Informatique Physiques.
Je vais relire tout ça et on verra bien!
Merci
Hors ligne
#24 Le 18/01/2006, à 21:46
- Marie-Laure
Re : problème d'exécution
moi je suis en l1 math info...
Hors ligne
#25 Le 19/01/2006, à 09:47
- rdalain
Re : problème d'exécution
Bjr! Toujours pas réussi à éxécuter mon programme depuis n'importe quel répertoire. En fait, le programme à éxecuter se trouve dans /home/username/I01/TP1. Comment faire pour l'éxécuter n'importe où? Je pense ne pas avoir trés bien l'histoire du PATH.
Merci de votre aide.
Hors ligne