comment exécuter un code compilé sous Linux console ? (Programmes C) - Programmation
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 !
Marsh Posté le 08-03-2001 à 08:34:20
et ça me fait ça, que je sois loggé en root comme en user
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.
Marsh Posté le 08-03-2001 à 12:02:08
Merci Toxin, je comprend mieux alors pourquoi je me fais jeter comme une globule alors !!!
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
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).
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 )
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).
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
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
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 ?