Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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

requiem a écrit :

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à wink


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