Bonjour tout le monde,
L'origine de mon problème : Je veut utiliser une fonction qui n'est pas dans les headers de MinGW ni apparemment dans sa librairie (libadvapi32.a) qui ne doit pas être à jour.
Donc, j'ai déclaré le prototype de la fonction, mais à la compilation j'ai un message d'erreur comme "undefined reference to `xxxxxxxx@8'" et j'ai remarqué que le compilateur renvoyais ce genre de message avec [nom de la fonction]@[nombre] quand on avait oublié de lier une librairie.
Le problème, c'est que j'ai déjà lié libadvapi32.a qui se trouve dans le dossier de MinGW, donc j'en ait conclus que comme la fonction n'étais pas dans les headers, elle n'avait pas non plus été inclus dans la librairie de MinGW.
Donc j'ai chargé le SDK de XP SP2, et dedans j'ai trouvé la librairie Advapi32.lib, mais le problème c'est que les librairies données par le SDK de Microsoft ne sont pas compatibles avec MinGW.
Donc j'ai plusieurs question :
1- Est-ce que mon résonnement est bon ?
2- Peut-on compiler ou convertir une librairie .lib en .a ?
3- Sinon, peut-on prendre le code source qui a été utiliser pour générer le .a et y ajouter ce qu'il faut pour cette fonction ?
4- Peut-on "dire" au compilateur "fait comme si tu avait trouvé ce qu'il faut dans libadvapi32.a", et ensuite le programme devrait fonctionner normalement puisque la fonction existe dans la dll vers laquel la librairie renvoyais ?
5- En dernier recours, j'ai crus comprendre qu'il y avait une autre manière de lier une dll à un .exe, vous pouvez m'en dire plus ?
Merci.
A+, Pierre.
Partager