IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

ouvrir un fichier objet


Sujet :

C

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 84
    Points : 61
    Points
    61
    Par défaut ouvrir un fichier objet
    Salut tout le monde,

    Es ce que quelqu'un sait comment visualiser un fichier objet générer avec la commande :

    gcc -c fichier.c

    Merci beaucoup,

  2. #2
    Membre éclairé

    Homme Profil pro
    Développeur mobile iOS / Android
    Inscrit en
    Décembre 2008
    Messages
    259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur mobile iOS / Android
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 259
    Points : 690
    Points
    690
    Par défaut
    Bonsoir,

    Les fichiers objets s'ouvrent avec des programmes 3D à ma connaissance.
    Essaie plutôt cette commande:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gcc -Wall -o fichier.o -c fichier.c
    cordialement
    « Il est assez difficile de trouver une erreur dans son code quand on la cherche. C’est encore bien plus dur quand on est convaincu que le code est juste. » - Steve McConnell

    N'oubliez pas de consulter les FAQ Swift, Android
    Tutoriel : Développer une application multilingue sous iOS

  3. #3
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 064
    Points
    219 064
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Je dois dire qu'il y a confusion.
    Un fichier .obj ... contient bien souvent un objet 3D (format de blender ... et autre).
    Un fichier .o (généré par gcc) ou .obj (avec Visual Studio) contient du code ... et n'est pas vraiment lisible (c'est du code compilé). Donc, on n'essaiera pas vraiment de l'ouvrir.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  4. #4
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 690
    Points : 30 986
    Points
    30 986
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    Un fichier .o (généré par gcc) ou .obj (avec Visual Studio) contient du code ... et n'est pas vraiment lisible (c'est du code compilé). Donc, on n'essaiera pas vraiment de l'ouvrir.
    Si vraiment on veut tenter, on peut utiliser un éditeur hexa. Ou, si on est sur un Unix ou équivalent, on peut tenter la commande "strings" qui extrait les chaines de caractères.

    Ou alors, plutôt que d'aller voir le fichier ".o", on peut demander gcc -s qui ira générer le code assembleur correspondant au .c et le stockera dans un fichier ".s"...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #5
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 373
    Points : 23 629
    Points
    23 629
    Par défaut
    On peut surtout utiliser les outils dédiés, comme nm sous UNIX en général, et objdump chez GNU. Notamment pour avoir les symboles résolus dynamiquement :

    Code Shell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ nm -D fichier.o

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 84
    Points : 61
    Points
    61
    Par défaut
    Bonjour à tous,

    Merci pour vos réponses.

    J'ai trouvé (sous linux) la commande qui me permet de lire ça :

    od -x fichier.o

    ça te donne le fichier en binaire dure, Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    0000000 457f 464c 0101 0301 0000 0000 0000 0000
    0000020 0001 0003 0001 0000 0000 0000 0000 0000
    0000040 0450 0000 0000 0000 0034 0000 0000 0028
    0000060 000e 0009 0000 0000 0000 0000 0000 0000
    0000100 0000 0000 0001 0000 0000 0000 0000 0000
    0000120 0004 fff1 0008 0000 0000 0000 0000 0000
    0000140 0003 0009 0010 0000 0000 0000 0000 0000
    0000160 0003 0001 0018 0000 0000 0000 0000 0000
    Merci et bonne journée

  7. #7
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 064
    Points
    219 064
    Billets dans le blog
    120
    Par défaut
    od est un éditeur / visualisateur de fichier en hexadécimal (c'est un peu simplifié :p).
    Il permet de lire tout est n'importe quel fichier, mais les informations qu'il affiche sont très difficilement lisible. C'est pour cela que les autres membres essayer de répondre à la question, pour les .o précisément, avec des outils qui donnent de vrai information utile et ceci, rapidement.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  8. #8
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 373
    Points : 23 629
    Points
    23 629
    Par défaut
    Citation Envoyé par Hisoka_Hunter Voir le message
    J'ai trouvé (sous linux) la commande qui me permet de lire ça : od -x fichier.o
    Si c'est ce genre d'infos que tu veux avoir, utilises plutôt « hexdump », ou « xxd » sous Linux :

    Code Shell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ xxd fichier.o

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 84
    Points : 61
    Points
    61
    Par défaut
    Merci beaucoup pour vos réponses,

    Au faite le bute c de faire le lien entre binaire et assembleur c'est pour ça je me suis pas orienté vers objdump par exempl.

    Merci beaucoup

  10. #10
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 373
    Points : 23 629
    Points
    23 629
    Par défaut
    Dans ce cas, tu devrais adorer

    Code Shell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $ gcc -S fichier.c

    … et

    Code Shell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $ objdump -d fichier.o

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 26/04/2004, 13h55
  2. ouvrir un fichier
    Par sofiane61 dans le forum MFC
    Réponses: 3
    Dernier message: 10/01/2004, 23h04
  3. [java][Oracle]Ouvrir un fichier(blob) avec le browser
    Par marsup54 dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 11/09/2003, 13h35
  4. [VBA-E] ouvrir un fichier .xls sans executer les macro
    Par lae_t2 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/01/2003, 17h07
  5. [Kylix] Ouvrir un fichier en étant dans KYLIX
    Par Jackepsi dans le forum EDI
    Réponses: 2
    Dernier message: 05/11/2002, 15h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo