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

Ubuntu Discussion :

"Undefined reference" avec Ubuntu 12.04


Sujet :

Ubuntu

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieur Télécom
    Inscrit en
    Septembre 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Télécom
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2011
    Messages : 11
    Points : 14
    Points
    14
    Par défaut "Undefined reference" avec Ubuntu 12.04
    Bonjour,
    mon problème est le suivant:
    J'utilise la librairie libftdi-dev.
    Tant que j'étais sous Ubuntu 10.04 j'utilisais la commande suivante qui compilait sans souci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gcc -lftdi attenuateur.c -o attenuateur
    Depuis que je suis passé à Ubuntu 12.04, la commande me renvoit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    $gcc -lftdi attenuateur.c -o attenuateur
    /tmp/ccy1TJFN.o: In function `Write':
    attenuateur.c:(.text+0x28): undefined reference to `ftdi_write_data'
    attenuateur.c:(.text+0x3d): undefined reference to `ftdi_get_error_string'
    /tmp/ccy1TJFN.o: In function `Open':
    attenuateur.c:(.text+0x8e): undefined reference to `ftdi_init'
    attenuateur.c:(.text+0xe0): undefined reference to `ftdi_usb_open'
    attenuateur.c:(.text+0xf5): undefined reference to `ftdi_get_error_string'
    attenuateur.c:(.text+0x13a): undefined reference to `ftdi_set_bitmode'
    attenuateur.c:(.text+0x14a): undefined reference to `ftdi_get_error_string'
    /tmp/ccy1TJFN.o: In function `Close':
    attenuateur.c:(.text+0x195): undefined reference to `ftdi_usb_close'
    attenuateur.c:(.text+0x1aa): undefined reference to `ftdi_get_error_string'
    attenuateur.c:(.text+0x1df): undefined reference to `ftdi_deinit'
    collect2: ld a retourné 1 code d'état d'exécution
    Bien entendu, j'avais auparavant installé libftdi avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $ sudo apt-get install libftdi-dev
    Lecture des listes de paquets... Fait
    Construction de l'arbre des dépendances       
    Lecture des informations d'état... Fait
    libftdi-dev est déjà la plus récente version disponible.
    0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.
    La librairie est bien présente:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $ locate libftdi.so
    /usr/lib/i386-linux-gnu/libftdi.so
    /usr/lib/i386-linux-gnu/libftdi.so.1
    /usr/lib/i386-linux-gnu/libftdi.so.1.19.0
    Mais j'ai beau indiqué l'emplacement de la librairie, rien y change
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    $ gcc -lftdi -L/usr/lib/i386-linux-gnu attenuateur.c -o attenuateur
    /tmp/cckuR40X.o: In function `Write':
    attenuateur.c:(.text+0x28): undefined reference to `ftdi_write_data'
    attenuateur.c:(.text+0x3d): undefined reference to `ftdi_get_error_string'
    /tmp/cckuR40X.o: In function `Open':
    attenuateur.c:(.text+0x8e): undefined reference to `ftdi_init'
    attenuateur.c:(.text+0xe0): undefined reference to `ftdi_usb_open'
    attenuateur.c:(.text+0xf5): undefined reference to `ftdi_get_error_string'
    attenuateur.c:(.text+0x13a): undefined reference to `ftdi_set_bitmode'
    attenuateur.c:(.text+0x14a): undefined reference to `ftdi_get_error_string'
    /tmp/cckuR40X.o: In function `Close':
    attenuateur.c:(.text+0x195): undefined reference to `ftdi_usb_close'
    attenuateur.c:(.text+0x1aa): undefined reference to `ftdi_get_error_string'
    attenuateur.c:(.text+0x1df): undefined reference to `ftdi_deinit'
    collect2: ld a retourné 1 code d'état d'exécution
    Qu'est ce qui a changé avec la 12.04?

    Merci pour votre aide.

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 858
    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 858
    Points : 218 575
    Points
    218 575
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Ce qui a changé, c'est la version de GCC, qui dit que les options -lxxxx doivent être mise en dernier (tout à la fin) de la commande.
    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.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Ingénieur Télécom
    Inscrit en
    Septembre 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Télécom
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2011
    Messages : 11
    Points : 14
    Points
    14
    Par défaut
    Super, ça marche.

    Merci infiniment parce que je n'étais pas prêt de trouver la solution

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 19/12/2012, 17h59
  2. Réponses: 6
    Dernier message: 08/01/2012, 09h05
  3. Réponses: 8
    Dernier message: 20/03/2011, 02h21
  4. " undefined reference to " avec methode template
    Par coldrink dans le forum Langage
    Réponses: 3
    Dernier message: 24/10/2009, 20h05

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