Rechercher : dans
Par :

Compilation/execution programme C sous linux

Dernière réponse le 8 mar 2009 à 22:15:05 driks, le 8 mar 2009 à 21:15:51 
 Signaler ce message aux modérateurs

Bonjour,
je veux paraitre noob mais j'ai un problème d'execution de programme C sous Linux
Je développais auparavant avec l'IDE Code blocks sous Windows et je viens de passer à linux, marre de la fenêtre.

J'ai un fichier test.c tout bête, le Bonjour Monde

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
  printf("Hello World\n");
  system("PAUSE");
  return 0;
}


pour le compiler je réalise cette commande:
cedric@ubuntu:~/Documents/C$ gcc -o test test.c

J'aimerais maintenant l'executer, mais je n'y arrive pas, même par l'interface graphique,
Si vous pouviez m'aider...
merci d'avance
Configuration: Linux
Firefox 3.0.7

Meilleures réponses pour « Compilation/execution programme C sous linux » dans :
[Linux] Installer les programmes (gestion des paquets, compil) Voir************************************************************** **** INSTALLER UN PROGRAMME SOUS LINUX : **** * LA GESTION DES PAQUETS ou COMMENT SE SIMPLIFIER LA VIE * ** UN EXEMPLE DE COMPILATION POUR SE FAIRE LA MAIN ...
Installer un programme sur Linux Ubuntu VoirInstaller un programme avec Linux Ubuntu Ce qui suit s'applique aux distributions Ubuntu récentes Premier embarquement sur Linux Linux est encore plus facile si on ne connais pas Windows En premier: 'Comment ne pas tenter d'installer un...
La compilation et les modules en C et en C++ VoirCet article a pour vocation d'introduire les notions de bases de la compilation en C et en C++ et de la programmation modulaire. Il permet de mieux comprendre les messages d'erreur du compilateur. Les notions abordées ici sont indépendantes du...

1

pyschopathe, le 8 mar 2009 à 21:17:59

Salut, il suffit de te placer dans le répertoire dans lequel se trouve le fichier exécutable et de taper en console

./test
Sachant que le . désigne le répertoire courant, tu tapes donc le chemin vers ton fichier exécutable.

Répondre à pyschopathe

2

driks, le 8 mar 2009 à 21:19:33

Merci beaucoup, désolé du dérangement
A+
Et vive Linux, pourquoi ne m'y suis-je pas mis avant?...

Répondre à driks

4

pyschopathe, le 8 mar 2009 à 21:20:50

Pas de soucis, on a tous de petits problèmes en débutant ^^ !

Content que tu apprécies Linux, profite bien de cette nouvelle expérience ;p

Répondre à pyschopathe

3

fiddy, le 8 mar 2009 à 21:19:47
  • +1

Salut,
Tout d'abord, déjà tu peux enlever system("PAUSE") qui peut être utile sur Windows mais pas sur linux compte tenu du fait que tu souhaites le lancer en console.
Sinon pour lancer ton programme, teste :

./test

Cdlt
Google is your friend

Répondre à fiddy

6

pyschopathe, le 8 mar 2009 à 21:21:59

Tout à fait, je n'avais même pas lu le code, tout content de pouvoir donner la solution de suite ^^ !

Répondre à pyschopathe

5

driks, le 8 mar 2009 à 21:21:16

Merci à toi aussi, c'est vrai qu'il ne sert à rien et en plus il me met:

cedric@ubuntu:~/Documents/C$ gcc -o  test  test.c

C'est qu'il n'en a pas besoin, compte tenu qu'on est déjà dans la console?

Répondre à driks

7

driks, le 8 mar 2009 à 21:22:03

Pardon, il me met

sh: PAUSE: not found

Répondre à driks

8

pyschopathe, le 8 mar 2009 à 21:24:50

D'accord, je ne comprenais pas ton post précédent ^^ ! Effectivement, l'instruction pause n'existe pas sous nux.

Répondre à pyschopathe

9

fiddy, le 8 mar 2009 à 21:29:54

Lorsque tu utilises la commande system, cela va exécuter la commande en appelant /bin/sh -c. Et puisque PAUSE n'est pas une commande issue du monde Linux, /bin/sh t'affiche qu'il ne la connaît pas. D'où le message d'erreur. T'obtiendras la même erreur en tapant directement PAUSE dans la console.

C'est qu'il n'en a pas besoin, compte tenu qu'on est déjà dans la console?
En fait sur windows, la plupart des personnes lancent leur exécutable en double cliquant. Cela va donc créer une console qui se fermera lorsque l'application prendra fin. Et comme cela va très vite, l'utilisateur ne voit pas grand chose. C'est pour cela qu'on utilise system("PAUSE");.
Mais lorsque tu lances en console, la fenêtre ne se fermera pas à la fin du programme. Donc, c'est complètement inutile de mettre un system("PAUSE"); qui de plus nuit à la portabilité.
Google is your friend

Répondre à fiddy

10

 driks, le 8 mar 2009 à 22:15:05

Merci Fiddy pour tes précieuses explications
Cdt
Driks

Répondre à driks