Hello tout le monde,
J'ai un soucis avec la génération d'une bibliothèque (statique, mais elle pourrait être dynamique je pense que ce serait pareil). J'utilise Visual Studio 2005.
En général, lorsqu'on écrit un programme utilisant des fonctions externes, on doit lier le programme avec un fichier .lib content l'implémentation des fonctions externes appelées. Exemple : lorsqu'on utilise la lib boost::serialization, on est tenu d'inclure le fichier "boost_serialization_1_33_1_mt.lib". Si par mégarde on oublie d'inclure ce fichier, le linker nous rappelle à l'ordre avec une erreur du genre :
"error LNK1181: cannot open file boost_serialization_1_33_1_mt.lib"
Lorsque je fais la même chose avec une bibliothèque écrite par mes mains, celà se passe autrement. J'oublie d'inclure ma bibliothèque mylib_1_0_4.lib, et le compilateur m'affiche un message du genre :
"error LNK2019: unresolved external symbol 'int thiscall MaFonction(void).."
Pour résumer, avec une librairie compilée par des pros, le linker est capable de dire de quelle biblithèque proviennent les fonctions dont l'implémentation n'a pas été trouvée, par contre, avec une librarie perso, le linker ne sait pas faire le matching et affiche simplement le noms des fonctions non trouvées.
Comment faire pour compiler une lib perso avec la faculté d'associer les fonctions au nom de la librarie ?
Merci beaucoup !
Partager