Martial Demolins :
Le mot exporté est un bien grand mot pour moi, mais qui ne signifie pas grand chose. Je sais que pour exporter un label, on fait
xdef label
mais comment ça marche après au niveau du linker?
Le symbole est:
* présenté au linker quels que soient les switches de l'assembleur.
* marqué comme exporté (non-local).
Peut-on exporter autre chose que des labels?
Tu veux exporter quoi d'autre?
Tu peux exporter les labels de tous les types (labels de code, variables), mais c'est tout.
Dans la doc de ExtGraph, il est spécifié qu'il faut inclure extgraph.h au début du programme, mais qu'il faut aussi mettre (si j'ai bien compris) extgraph.h et extgraph.a dans le répertoire du projet. Est-ce bien nécessaire, TIGCC ne fait-il pas ça tout seul si on rajoute le fichier au projet?
Tout dépend de comment on compile:
* En ligne de commande, il faut copier les fichiers dans le répertoire du projet.
* Avec L'IDE, il faut rajouter les fichiers au projet. Peu importe le répertoire où ils sont, mais il est quand-même conseillé de les copier dans le répertoire du projet, parce que sinon tu auras des problèmes pour diffuser les sources (parce que la librairie sera référencée par un chemin d'accès absolu).
Dernière question, dans une lib statique, faut-il réinclure les headers utilisés (extgraph.h, tigcclib), où ne faut-il pas le faire?
Ça dépend de si tu as besoin des déclarations qu'il y a dedans.
Y a-t-il un empêchement pour inclure deux fois le même header?
Pas automatiquement. Il faut mettre des "include guards" (des
#ifdef,
.ifdef ou
ifd selon le langage) si tu veux que ça marche.