Messages d'erreur lors du link d'un package C++Builder 6.0 (unresolved ref...)

Résolu
blueperfect Messages postés 234 Date d'inscription mardi 13 novembre 2007 Statut Membre Dernière intervention 21 novembre 2013 - 24 janv. 2011 à 22:12
blueperfect Messages postés 234 Date d'inscription mardi 13 novembre 2007 Statut Membre Dernière intervention 21 novembre 2013 - 25 janv. 2011 à 15:06
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

cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
25 janv. 2011 à 10:02
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
3
cs_Lucky92 Messages postés 180 Date d'inscription mercredi 22 décembre 2004 Statut Membre Dernière intervention 16 août 2012 2
25 janv. 2011 à 07:19
Tu devrais poster une partie de ton code et le message d'erreur.
0
blueperfect Messages postés 234 Date d'inscription mardi 13 novembre 2007 Statut Membre Dernière intervention 21 novembre 2013
25 janv. 2011 à 15:06
@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
0
Rejoignez-nous