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 :

Erreur de linkage


Sujet :

C++

  1. #1
    Membre émérite
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Points : 2 466
    Points
    2 466
    Par défaut Erreur de linkage
    Bonjour à tous.
    ld lève les erreurs de linkages suivantes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    undefined reference to `MNT_Parser::~MNT_Parser()'
    undefined reference to `MNT_Parser::MNT_Parser(int,int)'
    Voici ma hierarchie de classes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    template <class T> class MNT_Data {...};
    class MNT_Parser {...};
    class DTED2_Parser : public MNT_Parser {...}
    J'obtiens cette erreur en créant une bibliothèque pour ocaml. Une compilation "normale" génère un code fonctionnel. La classe MNT_Data appelle des méthodes de classes T (quit sont en général des dérivés de MNT_Parser).

    Voici un code qui compile en exécutable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #include "mnt_data.h"
    #include "dted2_parser.h"
     
    using namespace std;
     
    int main() {
        MNT_Data<DTED2_Parser> mnt;
        cout << mnt.get_altitude(51.298,4.0635) << endl; // en Hollande
        return 0;
    }
    Et un ne compilant pas (en fait problème de link)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #inclu...
    MNT_Data<DTED2_Parser> *mnt;
    extern "C" long get_altitude(double lon, double lat) {
        mnt = new MNT_Data<DTED2_Parser>;
        return mnt->get_altitude(lon,lat);
    }

    Je ne vois vraiment pas pourquoi ça ne fonctionne pas :'(
    Merci de votre aide.
    -- Yankel Scialom

  2. #2
    Membre à l'essai
    Développeur informatique
    Inscrit en
    Février 2009
    Messages
    15
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2009
    Messages : 15
    Points : 15
    Points
    15
    Par défaut
    Bonjour,

    Question bete mais as tu pensais a rajouter ta librairies avec l'option "-l" quand tu link ton application ?

    gcc <object file> -l<libname>

Discussions similaires

  1. Erreur au linkage de la zlib en static
    Par Flo. dans le forum C++
    Réponses: 10
    Dernier message: 05/05/2006, 09h23
  2. Erreur au linkage
    Par Celelibi dans le forum Linux
    Réponses: 3
    Dernier message: 04/05/2006, 23h59
  3. Erreur de linkage d'une Dll
    Par Hokagge dans le forum MFC
    Réponses: 1
    Dernier message: 30/03/2006, 14h48
  4. Erreur de Linkage GMP
    Par youbyoub dans le forum Autres éditeurs
    Réponses: 8
    Dernier message: 05/03/2006, 13h31
  5. Membres statiques d'une classe et erreur de linkage
    Par Neilos dans le forum C++Builder
    Réponses: 10
    Dernier message: 09/02/2006, 23h06

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