Messages d'erreur lors du link d'un package C++Builder 6.0 (unresolved ref...) [Résolu]

Signaler
Messages postés
237
Date d'inscription
mardi 13 novembre 2007
Statut
Membre
Dernière intervention
21 novembre 2013
-
blueperfect
Messages postés
237
Date d'inscription
mardi 13 novembre 2007
Statut
Membre
Dernière intervention
21 novembre 2013
-
J'ai écris une librairie C++ utilisant des templates, et je l'ai compilé dans un package...pas d'erreurs, ni de warnings...

Mais lorsque j'utilise l'une de mes classes du package, le linker m'hurle:

Unresolved reference....

Que faire ?

blueperfect

3 réponses

Messages postés
3802
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
9 janvier 2020
93
librairie => bibliothèque.

Un template n'est pas du code, mais un générateur de code. C'est du code virtuelle qui n'est même pas existant si tu ne t'en sers pas. Donc, tu ne peux pas mettre de template dans une bibliothèque. On livre généralement les .hh/.hpp et .hxx. Regarde boost par exemple, la plupart de leurs bibliothèques tiens dans des headers seulement.

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
Messages postés
180
Date d'inscription
mercredi 22 décembre 2004
Statut
Membre
Dernière intervention
16 août 2012
2
Tu devrais poster une partie de ton code et le message d'erreur.
Messages postés
237
Date d'inscription
mardi 13 novembre 2007
Statut
Membre
Dernière intervention
21 novembre 2013

@Lucky92
>>Tu devrais poster une partie de ton code et le message d'erreur
j'y songe...

@CptPingu
>>Donc, tu ne peux pas mettre de template dans une bibliothèque
Après recherche sur le web, le compilo C++ fonctionne par substitution de termes, et donc ne peux compiler une implémentation (source .CPP) avec templates... Sauf, dans certains cas, avec Visual Studio de Crosoft....

Bref, j'ai contourné mon problème en instaurant une classe abstraite, et une fonction virtuelle oure de création d'une instance, à la manière de la VCL...

merci de la réponse (bonne, héhé) !

blueperfect