#1 Le 13/06/2006, à 21:43
- Arrrakis
besoin de clarifier quelques trucs en compilation svp
Bonsoir
Je me suis mis recemment au C/C++ sous windows (avec devc++) sans chercher a comprendre comment ca fonctionnait.
Je suis passé sous linux il y a 3 jours et je vois mal comment faire un programme en C...
Je sais juste qu'il faut que je le compile avec gcc.
Mais avant, je dois mettre mon code dans un fichier texte tout bete (comme en python quoi)? mais avec quelle extension ?
Enfin bref je suis pommé entre les fichier o les fichiers h et toutes ces petites bêtes fort peu attirantes
si quelqu'un pouvait m'eclaircir sur ce sujet
d'avance merci !
Hors ligne
#2 Le 13/06/2006, à 21:53
- gene69
Re : besoin de clarifier quelques trucs en compilation svp
hum
tu commences par ça
http://jerikojerk.over-blog.net/categorie-515352.html
et tu regardes la correction là si tu ne trouves pas le bug:
http://jerikojerk.over-blog.net/categorie-519188.html (le code est en bas de la page.)
l'extention pour le "C" les sources c'est "*.c" et le header c'est "*.h"
remarque pour le C les commentaires sont seulement /* */
Dernière modification par gene69 (Le 13/06/2006, à 21:54)
Quand le berger est lâche, le loup chie de la laine.
A (draft) guide to UFO Alien-Invasion
Hors ligne
#3 Le 13/06/2006, à 22:05
- Riicooo
Re : besoin de clarifier quelques trucs en compilation svp
Si tu ne veux pas te poser de question, tu peux utiliser un programme similaire (je crois) à Dev-C++ : Anjuta.
Sinon, c'est pas bien compliqué : pour gcc l'option -o permet de definir le nom du fichier et l'option -c permet de faire les .o.
Pour l'extention des fichiers, cela n'a aucune importance (sous Linux de manière général d'ailleurs).
Pour les .h, ils n'intervienent pas dans la commande de compilation.
gcc = pour du C
g++ = pour du C++
Par exemple pour des fichiers main.cpp a.cpp a.h b.cpp b.h :
g++ -o main.o -c main.cpp
g++ -o a.o -c a.cpp
g++ -o b.o -c b.cpp
g++ -o programme main.o a.o b.o
Dernière modification par Riicooo (Le 13/06/2006, à 22:09)
Hors ligne
#4 Le 13/06/2006, à 22:43
- gene69
Re : besoin de clarifier quelques trucs en compilation svp
pour l'extention des fichiers je ne suis pas d'accord. D'une part gedit base sa coloration sur l'extention du fichier et passe des sources c++ avec une extention ".c" gcc va hurler...
De même j'ai eu une fois une tonne d'ennuis parce que je voulais mettre des "*.C" à mes fichiers en C. le gcc que j'avais (c'étais un vieux) les a pris pour du C++, ça marchais pas...
L'entête mime d'un fichier source C est je pense (et à confirmer) la même que celle d'un fichier texte.
Quand le berger est lâche, le loup chie de la laine.
A (draft) guide to UFO Alien-Invasion
Hors ligne
#5 Le 13/06/2006, à 22:52
- Riicooo
Re : besoin de clarifier quelques trucs en compilation svp
Je ne voulais parler des extentions que pour gcc, mais c'est vrai qe pour gedit et d'autres exemple elles sont importantes.
Je ne savais pas que les extentions était importantes pour gcc !
Je teste...
edit: pas de problème chez moi pour g++ avec des sources c++ avec une extention .c ...
Dernière modification par Riicooo (Le 13/06/2006, à 23:02)
Hors ligne
#6 Le 13/06/2006, à 23:41
- gene69
Re : besoin de clarifier quelques trucs en compilation svp
bon j'accepte ma défaite. C'est un vieux souvenir qui remonte à l'époque ou je ne comprenais rien au code que j'écrivais.
Quand le berger est lâche, le loup chie de la laine.
A (draft) guide to UFO Alien-Invasion
Hors ligne
#7 Le 14/06/2006, à 08:39
- Arrrakis
Re : besoin de clarifier quelques trucs en compilation svp
Par exemple pour des fichiers main.cpp a.cpp a.h b.cpp b.h :
g++ -o main.o -c main.cpp
g++ -o a.o -c a.cpp
g++ -o b.o -c b.cpp
g++ -o programme main.o a.o b.o
donc en gros la commande c'est gcc/g++ -o [fichier o] -c [fichier kon veut] ???
Et dans la derniere ligne tu créé un executable a partir des .o que tu as créé précédemment ??
Hors ligne
#8 Le 14/06/2006, à 09:00
- Riicooo
Re : besoin de clarifier quelques trucs en compilation svp
Presque :
gcc/g++ -c [fichier.cpp pour faire un .o] -o [fichier kon veut en .o] (l'ordre est pas important -o avant ou aprés -c...).
g++ -o a.o -c a.cpp --> te créé "a.o" à partir de "a.cpp"
g++ -o programme main.o a.o b.o --> te créé l'exécutable en utilisant les 3 .o créés précédement (donc là, t'as bon ).
Hors ligne
#9 Le 14/06/2006, à 11:29
- Arrrakis
Re : besoin de clarifier quelques trucs en compilation svp
Nickel, merci bien
Hors ligne