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 :

problème de compilation : undefined reference to


Sujet :

C++

Vue hybride

minou777 problème de compilation :... 28/08/2009, 12h56
3DArchi Bonjour et bienvenu, Il... 28/08/2009, 13h06
minou777 Merci pour la réponse. ... 28/08/2009, 15h26
3DArchi Je n'utilise quasiment jamais... 28/08/2009, 15h40
LittleWhite @3DArchi: Vous avez juste... 29/08/2009, 00h35
minou777 J'ai reussi de compiler le ... 07/09/2009, 18h29
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Août 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 9
    Par défaut problème de compilation : undefined reference to
    Bonjour,

    Je suis débutant en C++, Je veux développer un simple client bittorent en C++ en utilisant la bibliothèque libtorrent implémenté en C++. je travaille sur ubuntu 8.10/

    Après le telechargement du code source de la bibliothèque, je l'ai installé en utilisant ./configure, make, make install.

    J'ai un petit exemple prêt qui utilise libtorrent que j'ai voulu testé.

    Ce code contient des include de fichiers de la bibliothèque : voila l'entête du code source :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #include "libtorrent/session.hpp"
    #include "libtorrent/session_settings.hpp"
    #include "libtorrent/hasher.hpp"
    #include "libtorrent/create_torrent.hpp"
    #include <boost/thread.hpp>
    #include <boost/tuple/tuple.hpp>
     
    #include "test.hpp"
    #include "setup_transfer.hpp"
     
    using namespace libtorrent;
         ....
    Quand je compile en utilisant g++ test_torrent.cpp -o test_torrent.cpp.exe

    j'ai l'erreur suivante :
    test_torrent.cpp: (.text+0x2b5): undefined reference to `libtorrent::session::session(libtorrent::fingerprint const&, std::pair<int, int>, char const*, int)'
    test_torrent.cpp: (.text+0x2bd): undefined reference to `libtorrent::default_storage_constructor(libtorrent::file_storage const&, boost::filesystem::basic_path<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::filesystem::path_traits> const&, libtorrent::file_pool&)'
    test_torrent.cpp: (.text+0x30c): undefined reference to `libtorrent::session::add_torrent(libtorrent::add_torrent_params const&)'
    test_torrent.cpp: (.text+0x31b): undefined reference to `test_sleep(int)'
    test_torrent.cpp: (.text+0x330): undefined reference to `libtorrent::torrent_handle::status() const'
    test_torrent.cpp: (.text+0x466): undefined reference to `report_failure(char const*, char const*, int)'
    test_torrent.cpp: (.text+0x4fc): undefined reference to `report_failure(char const*, char const*, int)'
    test_torrent.cpp: (.text+0x55f): undefined reference to `libtorrent::torrent_handle::prioritize_files(std::vector<int, std::allocator<int> > const&) const'
    test_torrent.cpp: (.text+0x5a1): undefined reference to `test_sleep(int)'
    test_torrent.cpp: (.text+0x5b6): undefined reference to `libtorrent::torrent_handle::status() const'
    test_torrent.cpp: (.text+0x704): undefined reference to `report_failure(char const*, char const*, int)'
    test_torrent.cpp: (.text+0x79a): undefined reference to `report_failure(char const*, char const*, int)'
    test_torrent.cpp: (.text+0x7c5): undefined reference to `libtorrent::torrent_handle::prioritize_files(std::vector<int, std::allocator<int> > const&) const'
    test_torrent.cpp: (.text+0x7d1): undefined reference to `test_sleep(int)'
    test_torrent.cpp: (.text+0x7e6): undefined reference to `libtorrent::torrent_handle::status() const'
    test_torrent.cpp: (.text+0x90a): undefined reference to `report_failure(char const*, char const*, int)'
    test_torrent.cpp: (.text+0x9a0): undefined reference to `report_failure(char const*, char const*, int)'
    test_torrent.cpp: (.text+0xaa7): undefined reference to `libtorrent::session::~session()'
    test_torrent.cpp: (.text+0xad8): undefined reference to `libtorrent::session::~session()'
    Est-ce que quelqu'un peut m'aider à résoudre ce problème?

    Ça doit être un problème de référence à la bibliothèque?
    Ça fait deux jours que j'essaye de résoudre ce problème sans résultat.

    Merci pour votre aide.

  2. #2
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Bonjour et bienvenu,
    Il semblerait que ton projet exemple ne lie pas avec les .lib de ta bibliothèque. D'où l'échec de l'édition de lien.

  3. #3
    Membre habitué
    Inscrit en
    Août 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 9
    Par défaut
    Merci pour la réponse.

    J'ai essayé d'indiqué le chemin de la bibliotheque avec cette commande :

    g++ test_torrent.cpp -l /usr/local/lib/ -o test_torrent.exe

    J'ai eu cette erreur :

    /usr/bin/ld: cannot find -l/usr/local/lib/
    collect2: ld returned 1 exit status

  4. #4
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Je n'utilise quasiment jamais la commande en ligne mais m'appuie sur un I.D.E. Cependant, il me semble que la commande ressemble à quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    g++ test_torrent.cpp -L/usr/local/lib/ -ltorrent -o test_torrent.exe
    En supposant que tu ais un libtorrent.a dans le répertoire /usr/local/lib/. A toi d'adapter au besoin.

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


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

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 104
    Billets dans le blog
    146
    Par défaut
    @3DArchi: Vous avez juste dans votre exemple (du moins c'est mieux que minou777)

    @minou777: Votre erreur ressemble énormément au manque de la bibliothèques.
    De plus la commande que vous utilisez ne demande pas d'utiliser la bibliothèque pour le torrent.
    Explication:

    pour gcc / g++ l'option:
    -l permet d'ajoute une bibliothèque ( -ltorrent ( qui est un raccourci, mais passons))
    -L permet de rajouter un répertoire ou le compilateur devra chercher les bibliothèques que l'on veut inclure.
    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.

  6. #6
    Membre habitué
    Inscrit en
    Août 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 9
    Par défaut
    J'ai reussi de compiler le test_torrent.cpp. En fait y'avais un makefile fourni avec l'exemple qui permet de faire la compilation !

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/03/2013, 09h19
  2. Réponses: 2
    Dernier message: 28/09/2011, 21h56
  3. Problème compilation undefined reference to main
    Par Loïc Le Bars dans le forum Fortran
    Réponses: 1
    Dernier message: 30/03/2010, 16h52
  4. problème de compilation "undefined reference to"
    Par grabriel dans le forum Code::Blocks
    Réponses: 0
    Dernier message: 05/05/2008, 12h08
  5. Erreur compilation "undefined reference to "
    Par ViRouF dans le forum C++
    Réponses: 5
    Dernier message: 02/03/2007, 14h55

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