Fichier.o

Résolu
mike -  
 alphon5o -
Bonjour , je crée un fichier .c , je le compile avec un makfile , j'ai donc dans mon rep , un binaire , un .c , et un .o , quand je tape cat.o j'ai juste ELF...et pleins d'inscriptions illisibles , hors le fichier.o contient le code assembleur du fichier , pq il m'affiche pas le code assembleur?
merci

3 réponses

kmf31 Messages postés 1564 Date d'inscription   Statut Contributeur Dernière intervention   501
 
Le *.o n'est pas assembleur et c'est le fichier binaire compile mais pas encore executable, pour ca il faut encore faire le link.
Bref tu peux faire:

1) Creer un executable qui tourne:
gcc fichier.c -o programe

et apres executer avec:
./programe

ici "programe" est le nom de l'executable (tu peux choisir un autre nom, comme "fichier.out" ou "blabla" ou comme tu veux).

2) Creer le fichier.o comme tu l'as deja fait:
gcc -c fichier.c 

=> ca cree le fichier "fichier.o" (apres avec "gcc fichier.o -o ..." tu peux finir la compilation si tu veux).

3) Creer le fichier assemble ce que tu sembles de souhaiter (?):
gcc -S fichier.c

=> ca cree le fichier "fichier.s" qui est assembleur. Tu peux le regarder avec: "cat fichier.s" ou encore l'editer avec vi, emacs etc. si tu maitrise la language assembleur et apres tu peux aussi finir la compilation avec:
"gcc fichier.s -o ...".

Bref pour creer un fichier assembleur tu fais le dernier truc et tu utilises l'option "-S" avec gcc. Sans l'option "-S" le fichier assembleur est aussi cree mais tout de suite efface apres la compilation.
Normalement pour assembler on peux aussi utiliser la commande:
as fichier.s -o fichier.o

mais tu peux aussi utiliser directement la commande "gcc" qui est en realite seulement le programme de gestion, c.-a-d. le gcc appelle le preprocesseur C (le truc qui traite les #define et #include etc.), le compilateur, l'assembleur et la fin le linker. Pour voir tous ces details utilise l'option "-v" avec gcc pour afficher plus de blabla pendant toute la compilation.
11
Utilisateur anonyme
 
Bonjour
j'aimerais savoir ce que représente le "fichier.c".
2
alphon5o
 
le .c est le fichier source. il contient les lignes de ton programme pour faire simple.

comme le dit kmf31 le .o n'est pas un fichier ordinaire. c'est le fichier objet a partir du quel tu peux construire ton executable.
Si tu veux juste le code assembleur compile avec l'option -S de gcc.
2