(Programmes C) comment exécuter un code compilé sous Linux console ?

comment exécuter un code compilé sous Linux console ? (Programmes C) - Programmation

Marsh Posté le 07-03-2001 à 15:52:53    

Juste pour savoir ...
 
Lorsque je suis sous X, j'ouvre une console, je compile mon petit code .c et ça génère un fichier de sortie a.out (par défaut)
 
Pour exécuter ce fichier, je tape juste a.out et c'est parti mon kiki
 
Mais la manip ne fonctionne pas si je ne suis plus sous environnement graphique, juste en mode texte. La compilation fonctionne toujours mais le fichier compilé ne se lance plus (a.out)
 
Comment faire ? J'ai essayé via la commande exec, j'arrive à lancer le prog' mais une fois sorti, je me fais éjecter de ma connexion et me retrouve avec le log où je tape mon password de connexion (root ou user)
 
Keskeujeufékinépabon ?

Reply

Marsh Posté le 07-03-2001 à 15:52:53   

Reply

Marsh Posté le 07-03-2001 à 16:16:57    

????? Il met quoi comme message d'erreur ????


---------------
"If you can walk away from a landing, it's a good landing. If you use the airplane the next day, it's an outstanding landing." - Chuck Yeager. | Ma chaîne YT
Reply

Marsh Posté le 07-03-2001 à 16:18:21    

euh, ./a.out ?

Reply

Marsh Posté le 08-03-2001 à 08:32:42    

Exemple concret :
 
Admettons que je veuille lancer le programme compilé a.out qui se trouve en /home/user1/progs/.
 
Si je suis dans le même dossier que le fichier, taper "exec a.out" ne marche pas, j'ai une réponse du shell du style bad command ou un truc sacom
 
Pour que ça marche, je tape "exec /home/user1/progs/a.out". Là, le programme s'exécute mais dès que j'en sors, je me fais éjecter comme un malpropre de la session et je n'ai plus qu'à retaper mon login et mon pass pour relancer une console.
 
Cela dit, telle la brêle de base, j'avais aussi essayé le .a.out, je me souvenais plus du slash ...
 
Je teste ça ce soir, merci Verdoux ! :)

Reply

Marsh Posté le 08-03-2001 à 08:34:20    

et ça me fait ça, que je sois loggé en root comme en user

Reply

Marsh Posté le 08-03-2001 à 11:25:51    

le coup de la fenêtre qui se shunte avec le exec c'est tout à fait normal le processus du shell se fait recouvrir et à la fin de ton prog, le process se termine -> la fenêtre se ferme.


---------------
"If you can walk away from a landing, it's a good landing. If you use the airplane the next day, it's an outstanding landing." - Chuck Yeager. | Ma chaîne YT
Reply

Marsh Posté le 08-03-2001 à 12:02:08    

Merci Toxin, je comprend mieux alors pourquoi je me fais jeter comme une globule alors !!! :p
 
Je vais repasser en mode texte illico, j'apprenais justement à me servir de vi en mode texte uniquement, j'avais été déçu de ne pas pouvoir exécuter mes codes compilés comme je le voulais, c'est cool

Reply

Marsh Posté le 08-03-2001 à 15:38:54    

Peut-être que tu as déja compris, mais il suffit de taper "a.out" si a.out est dans ton path, sinon c'est <chemin>/a.out (ce qui inclut le cas "./a.out" si tu es dans le répertoire de a.out).

Reply

Marsh Posté le 08-03-2001 à 19:28:18    

On peut aussi rajouter '.' dans la variable PATH si 'a.out' tout court ne marche pas:
PATH="$PATH:."
 
(Heu syntaxe à vérifier :p)


---------------
"Colère et intolérance sont les ennemis d'une bonne compréhension." Gandhi
Reply

Marsh Posté le 09-03-2001 à 04:08:12    

a.out ... pour moi c'est l'ancien systeme de compilation de fichier en binaire. Aujourd'hui, TOUT les programmes sont compilés en ELF. Matte ca dans ton kernel parce que je trouve pas ca normal qu'on te compile un a.out (de nos jours).

Reply

Marsh Posté le 09-03-2001 à 04:08:12   

Reply

Marsh Posté le 09-03-2001 à 08:29:08    

Ben je sais po
 
j'ai utilisé gcc pour la compilation sur 2 distros : Debian 2.2 et Mandrake 7.0.2
 
à chaque fois, ça me génère un a.out en sortie

Reply

Marsh Posté le 09-03-2001 à 11:20:47    

Même si le fichier s'appelle a.out, c'est bien un fichier ELF. Tu peux t'en convaincre en faisant un "file a.out".
 
Si tu ne veux pas qu'il s'appelle a.out, tu peux spécifier un nom de fichier avec l'option "-o" : gcc essai.c -o essai

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed