#1 Le 27/07/2007, à 12:59
- osmin
[Répondu] Compiler et exécuter un programme en C
Bonjour à tous,
ne vous moquez pas je débute. J'ai un écrit un petit programme de rien du tout pour essayer :
#include <stdio.h>
int main()
{
printf("toto");
return 1;
}
Je l'ai ensuite compilé sans problème (du moins je pense) à l'aide de cette commande:
gcc -Wall -o essai essai.c
Comment fait-on pour l'exécuter à présent ?
Dernière modification par osmin (Le 27/07/2007, à 13:09)
Hors ligne
#2 Le 27/07/2007, à 13:06
- Nicolas2b
Re : [Répondu] Compiler et exécuter un programme en C
./essai
Ubuntu Gutsy sur ASUS A6JA Q016H
2 Go de RAM
ATI X1600
Core Duo 1,8 GHz
Hors ligne
#3 Le 27/07/2007, à 13:09
- osmin
Re : [Répondu] Compiler et exécuter un programme en C
thanks !
Hors ligne
#4 Le 27/07/2007, à 13:12
- littleblackdog
Re : [Répondu] Compiler et exécuter un programme en C
c'est mignon..
si tu as besoin d'aide dans la suite, n'hésite pas !
Hors ligne
#5 Le 27/07/2007, à 13:15
- AuraHxC
Re : [Répondu] Compiler et exécuter un programme en C
Comme tu commence prend de bonnes habitudes pour respecter la norme :
#include <stdio.h>
int main(void) {
printf("Hello world !!!\n");
return 0;
}
Il faut en general toujours dire ce que prend et retourne la fonction donc comme ta fonction main ne prend rien en paramètre tu mets void et quand tout se passe bien en general tu retourne 0, 1 (ou -1) en general c'est quand ca se passe mal.
Dernière modification par AuraHxC (Le 27/07/2007, à 13:19)
Hors ligne
#6 Le 27/07/2007, à 13:17
- Nicolas2b
Re : [Répondu] Compiler et exécuter un programme en C
Effectivement, retourner 1 est synonyme d'erreur !
Ubuntu Gutsy sur ASUS A6JA Q016H
2 Go de RAM
ATI X1600
Core Duo 1,8 GHz
Hors ligne
#7 Le 27/07/2007, à 13:18
- AuraHxC
Re : [Répondu] Compiler et exécuter un programme en C
Merci de m'appuyer => je viens d'éditer en même tps que ta réponse pour expliquer le code histoire que ca soit pas un code mis comme ca dans le vent
Hors ligne
#8 Le 27/07/2007, à 17:40
- osmin
Re : [Répondu] Compiler et exécuter un programme en C
Merci pour votre aide mais j'ai fait un hello toto et non un hello world, je suis anti-conformiste. Je repasserai pour tout problème et en plus j'ai trouvé des trucs dans la doc. J'ai quand même une question, car malgré mon noobisme apparent, j'ai programmé en sous Windows avec un compilateur qui s'appelait Visual C++ de Windows. Est-ce que le code tourne pareil sous linux ? Ou bien estc-ce qu'il y a des adaptations à faire. Je n'ai pas encore récupéré mes codes sources... quoiqu'il en soit je recompilerai ça sous linux demain.
Hors ligne
#9 Le 27/07/2007, à 20:22
- AuraHxC
Re : [Répondu] Compiler et exécuter un programme en C
Il y a des différences surtout au niveau des bibliothèques.
Sinon on te parlait de norme, c'est pas au niveau du Hello world tu l'auras bien compris
C'est plutôt => int main(void) et le return 0.
Hors ligne
#10 Le 27/07/2007, à 20:58
- osmin
Re : [Répondu] Compiler et exécuter un programme en C
Ok justement je voulais poser des questions sur les bibliothèques ? Il y a vraiment de grosses différences ? Où peut-on trouver une doc là-dessus ?
Hors ligne
#11 Le 27/07/2007, à 21:55
- AuraHxC
Re : [Répondu] Compiler et exécuter un programme en C
Je sais que sur windows il y a un fichier d'entête windows.h, après je sais pas trop exactement...
Au niveau des différences il y a les appels système qui fonctionne sur unix et pas sur windows et vice versa logique c'est pas la même gestion niveau du système d'exploitation.
Il y a aussi des différences entre les compilateurs qui génère pas forcement pareil l'executable etc...
Je pense que tu trouvera ton bonheur sur google parce que j'ai pas trop les détails... j'ai toujours programmé sur linux
Hors ligne
#12 Le 29/07/2007, à 15:49
- mkdav
Re : [Répondu] Compiler et exécuter un programme en C
La base commune à tous les OS, théoriquement, est définie par le standard ANSI C89 (ou ISO C90) et ANSI C99. Le reste dépend de l'OS (fenêtres graphiques, internet, son).
Windows exploite ses propres extensions, appelées win32 (windows.h, wininet.h, winsock.h, etc.) pour créer des fenêtres et utiliser les ressources, tandis que linux exploite les extensions POSIX (netinet, X11, unistd.h, etc.).
La grande majorité des fichiers d'en-tête sous ubuntu sont dans /usr/include, tu peux donc consulter quels fichiers existent dans les deux OS (comme stdlib.h, stdio.h, math.h, string.h, ctype.h, ...) et les fichiers différents (windows.h sous Windows, unistd.h sous linux).
Les programmes console respectent souvent le standard C commun aux OS, tandis que les programmes graphiques peuvent diverger. Pour palier à ce problèmes, des bibliothèques tel la SDL viennent "uniformiser" les comportements en contenant plusieurs parties de code différent (si c'est sous linux on compile les fenêtres linux, si c'est windows alors c'est le code win32 qui est compilé). La SDL permet, par exemple, de créer une fenêtre dans son programme de la même façon sur tous les OS qu'elle supporte. C'est la SDL qui s'occupe de demander une fenêtre de la bonne façon à l'OS, automatiquement.
C'est un résumé assez mal expliqué, je crois, mais qui peu être approfondi en recherchant sur google
D'autres différences existent, il sera impossible d'éxécuter un programme compilé sous Windows dans linux, même si c'est un programme respectant à la lettre le standard ANSI C89, par exemple.
Hors ligne