geogeo
a écrit :
J'ai fait ça aussi mais j'ai toujours le problème de ses undefined reference avec mes variables et je ne sais pas comment faire pour les intégrer dans la librairie au format statique.
Mets-les en
xdef dans le fichier qui les contient.
Question plus général, comment je doit m'y prendre pour créer une librairie statique avec des fonctions en assembleur qui utilise des variables "publiques", qui utilise des procédure (mais qui ne sont pas des fonctions de la librairie).
xdef var_publique
Aussi c'est normal que mon fichier polysnd.a fasse 26 ko???? C'est énorme!
Le format
.a crée pas mal d'overhead. Même si tu utilises
toutes les fonctions dans un programme client, ça ne lui fera
certainement pas 26 ko (mais 4 KO comme pour la version dynamique)!
En plus il fonctionne pas. 
Cf. les 2 premières réponses
squale92 a écrit :
au fait, quelqu'un sait à quoi sert le define GENERIC_ARCHIVE ?
c'est pour les Dll, ou pour les libs statiques ?
1. C'est
_GENERIC_ARCHIVE.
2. C'est pour les librairies statiques programmées en C. Ça fait en sorte que la librairie soit compatible à la fois avec les programmes
_nostub et kernel, avec ou sans des options comme
OPTIMIZE_ROM_CALLS..
geogeo a écrit :
include "variables.asm"
include "interrupt.asm"
include "Initialize.asm"
Ne fais pas ça!
Compile les fichiers
.asm séparément, sinon ça ne sert à rien de faire plusieurs fichiers!
Par exemple:
tigcc -ar variables.asm interrupt.asm Initialize.asm EnabledSound.asm -o polysnd2.a. Ou l'équivalent avec l'IDE (rajoute tous ces fichiers à ton projet sous la catégorie "A68k Assembly Files").
Pour que
EnabledSound (d'ailleurs, l'orthographe correcte est
EnableSound) puisse accéder à tes variables, met tes variables en
xdef.