Bonjour à tous.
ld lève les erreurs de linkages suivantesVoici ma hierarchie de classes :Code:
1
2 undefined reference to `MNT_Parser::~MNT_Parser()' undefined reference to `MNT_Parser::MNT_Parser(int,int)'
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).Code:
1
2
3 template <class T> class MNT_Data {...}; class MNT_Parser {...}; class DTED2_Parser : public MNT_Parser {...}
Voici un code qui compile en exécutableEt un ne compilant pas (en fait problème de link)Code:
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; }
Code:
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.