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.