PDA

Voir la version complète : [NDS][Aide] Compiler et inclure une lib


Dr.Vince
22/09/2006, 15h31
Bon voilà, j'ai un projet : PCG
j'ai un autre projet contenant unquement les sources de la libFAT
je compile le projet de la libFAT et en fait une archive (.a)

J'inclus cette archive dans mon projet PCG et là il ne compile pas car il y a une erreur dans mon archive.
L'erreur qu'il m'indique est l'utilisation d'une référence non définie, et en fait il s'agit de libFAT qui fait appel à une fonction de libnds.

Donc ma question principale est la suivante : j'ai oublié de faire quoi ???

mais j'en ai d'autres :
- en créant libfat.a, la libnds est-elle inclue dans l'archive ??
- quand on a une archive .a il faut obligatoirement avoir un fichier.h qui expose les fonctions de l'archive ?
- si oui alors c'est ld.exe qui se charge de faire le lien entre l'archive et le .h ???


Merci de bien vouloir éclairer ma lanterne

thoduv
22/09/2006, 18h19
Rien normalement. Essaie de changer l'ordre de linkage de tes librairies, et si ca ne change rien, ben je peux pas t'aider, j'ai souvent eu des problèmes irrésolus comme ca...

Pour tes autres questions:
- non
- oui, sinon il est où le prototype ?
- non, aucun rapport, les fonctions existent, mais le prototype dans le .h sert à expliquer à la suite du programme comment elles s'apellent et comment les utiliser (arguments, retour, etc).

Dr.Vince
22/09/2006, 19h18
donc d'après ta réponse si tu fait une archive qui utilise une librairie il fauda que le projet qui l'archive utilise également la même librairie ??

et dans le changement d'ordre, y a un truc à respecter ??

thoduv
22/09/2006, 19h50
donc d'après ta réponse si tu fait une archive qui utilise une librairie il fauda que le projet qui l'archive utilise également la même librairie ??

et dans le changement d'ordre, y a un truc à respecter ??
Oui, sauf si les headers sont les memes, et c'est logique d'ailleurs.
Et pour le coup du changement d'ordre je te conseille d'essayer au pif :
-lnds -lfat, -lfat -lnds, etc...

Dr.Vince
22/09/2006, 20h03
bon en fait ça fonctionne en changeant l'ordre j'en ai déduis mais c'est à confirmer :

a dépend de c
a dépend de b
b dépend de c

donc l'ordre de compilation est le suivant :

a, b, c

et ça fonctionnait pas avant car je faisais : a, c, b