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

GCC Discussion :

gcc, .o et linkage


Sujet :

GCC

  1. #1
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 272
    Points : 166
    Points
    166
    Par défaut gcc, .o et linkage
    Bonjour,

    J'ai un fichier toto.c avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void listeUsb( void )
    {
    blablabla
    }
    Un fichier toto.h avec

    Et un fichier go.c avec:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    include "toto.h"
     
    int main ( int argc, char** argv )
    {
       listeUsb();
       return( 0 )
    }
    Je compile avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gcc toto.c -c -o toto.o -L/usr/X11R6/lib -I/usr/local/include
    Il me genere toto.o

    puis:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gcc go.c toto.o -o go -L/usr/X11R6/lib -I/usr/local/include -lX11 -lglut -lGL -lusb
    Et le il me dit:

    Undefined reference to "listeUsb"

    Ma question: pourquoi ? Il devrait le trouver dans toto.o ?

    Merci de votre aide !
    Cordialement.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 49
    Points : 53
    Points
    53
    Par défaut
    es tu certain de ton message d'erreur ?

    le link devrait peut être t'indiquer (avec un "_" devant listeUsb)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Undefined reference to "_listeUsb"
    je viens d'essayer sans problème avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    gcc toto.c -c -o toto.o
    gcc go.c toto.o -o go
    (en corrigeant => include "toto.h" en #include "toto.h")

    regarde peut être dans les .o comment se nomme exactement la fonction listeUsb avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    nm toto.o | grep listeU
    nm go.o | grep listeU

  3. #3
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 272
    Points : 166
    Points
    166
    Par défaut Autant pour moi
    Bonjour

    Cela vient de moi, une erreur de #ifdef

    Cordialement.

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

Discussions similaires

  1. Gcc linkage 32bits impossible
    Par uriotcea dans le forum C++
    Réponses: 4
    Dernier message: 23/09/2014, 07h50
  2. [Ubuntu 10.10] Gcc et linkage librairie
    Par Aspic dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 22/03/2011, 18h35
  3. Réponses: 13
    Dernier message: 26/11/2010, 14h14
  4. Réponses: 4
    Dernier message: 16/10/2006, 07h31
  5. [Kylix] gcc et kylix
    Par alexsmadja dans le forum EDI
    Réponses: 1
    Dernier message: 28/05/2002, 10h00

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