Forum Clubic

Probleme avec Mandriva et le C++

Voila mon probleme : j’écris un programme en C++ je le compile avec “gcc nom_prog.cc” mais quand je tape “a.out” pour l’afficher il ne reconnait pas la commande bash. Quelqu’un pour m’aider ???
Merci.

./a.out

??? Explication svp ???

!!!!!!!! En fait !!!!!!
!!!!!!! Il faut taper ./a.out !!!!!!!!!!!!!!
!!!!!!! Car en fait, Linux, comme tout système Unix, nécessite un chemin absolu pour éxécuter un programme !!!!!!!!!!!
!!!!!! Étant donné que le . fait référence au dossier actuel, ça roule !!!!!!!!!!!

!!!!! (C’est la mode ) !!!!!
!!!!! tu peux aussi faire !!!!!
!!!!! make mon_programme !!!!
!!!!! puis !!!!!
!!!!! ./mon_programme !!!!
!!!!! (les règles par défaut de make sont gcc source.c -o source !!!!!

!!!!! Tu peux également déplacer ton binaire dans un répertoire référencé par la variable PATH, par exemple /usr/bin/ et tu n’as plus besoinde taper le ./ . Pour connaître la valeur de PATH, tapes $PATH en console !!!!!

!!!! (La prochaine mode typographique sera le þ et le ¶ : þþþþ texte ¶¶¶¶ ) !!!!

þþþþ super… vla la mode a la con :confused: ¶¶¶¶
þþþþ Tu peux egalement ajouter le repertoire courant (.) dans le PATH dans le fichier /home/ton_login/.bashrc ou /home/ton_login/.profile ¶¶¶¶
þþþþ bon moi je decide que le prochain devra ecrire avec des ¿ et des ¥ (vive macosx pour les raccourcis sur les caracteres debiles edit: a putain le forum accepte pas n’importe quoi) ¶¶¶¶

quand tu tapes une commande dans le shell, il recherche un fichier exécutable (programme, shell script) à partir de la variable d’environnement PATH.

je m’explique, si par exmple, ton PATH contient /usr/bin:/bin (le : est un séparateur, il contient donc dans l’ordre, les chemins /usr/bin et /bin) et que tu tapes “ls” il va chercher si le programme /usr/bin/ls existe, sinon, il va chercher /bin/ls, et sinon, il ne fera rien en te disant que la commande “ls” est introuvable (c’est ce qui s’est passé avec ton a.out)
Mais tu peux aussi taper un chemin absolu, par exmple /chez/moi/ls, et dans ce cas, il oublie la variable PATH et lance l’exécutable /chez/moi/ls si il existe.

le truc, c’est que le dossier spécial “.” représente celui dans lequel tu est actuellement, donc, la commande ./a.out revient au même que de taper /le/dossier/dans/lequel/je/suis/a.out

pour info, si tu veux connaître la valeur de ton PATH, tu peux taper la commande "echo $PATH"