Page 1 of 1

Creation d'une lib C - LLVM

Unread postPosted: 19 Jul 2020, 15:50
by Epharius
Coucou tout le monde,

Certains le savent, je suis en train de faire une librairie C. Me voilà à la "presque" fin du développement, et je fais face à un petit problème.
J'aimerais passer du stade "Fonction main() qui utilise les fonctions que j'ai créées" à "librairie en deux parties : 1 .h à importer dans le projet et 1 .8xv a transférer à sa calcu pour utiliser les fonctions", mais je n'ai aucune idée de comment faire ça avec la toolchain ?

J'imagine en effet que c'est très différent de la création d'une lib C en règle générale (.so). De plus, je n'ai pas réussi à trouver de lib C faite en C dans la toolchain, sur laquelle j'aurais pu copier.
Mon intuition me dit qu'il faut que :
  • Je crée un .lib pour exporter mes fonctions à LibLoad
  • Je crée un deuxième .h en enlevant toutes les fonctions static et où je ne garde que les struct/fonctions utilisable dans la lib
  • Mais comment créer le .8xv à mettre sur la calculatrice comme pour les autres lib C ? Y a-t-il un Makefile pour ça ?
  • Et y a-t-il autre chose à faire ?

Pour info j'ai compilé moi-même la toolchain pour avoir accès à la branche LLVM. Je tourne sous Linux Mint.

Merci des infos que vous pourrez m'apporter 8-)

Re: Creation d'une lib C - LLVM

Unread postPosted: 19 Jul 2020, 17:53
by MateoConLechuga
Toolchain libraries will never be supported as compiling directly from C code.

Re: Creation d'une lib C - LLVM

Unread postPosted: 19 Jul 2020, 17:55
by Adriweb
Voila... et donc tout ce que tu ferais sera manuel, et le rendu devra calquer une lib existante faite a la main en ASM (avec les "include", "library", "export"...)
Cf. une petite lib : https://github.com/CE-Programming/toolc ... rc/keypadc mais j'imagine que tu as déjà regardé.

Re: Creation d'une lib C - LLVM

Unread postPosted: 20 Jul 2020, 20:41
by Epharius
Ok ça marche ! Oui en effet ma question était "Y'a-t-il un moyen de passer du C à une lib C avec la toolchain".
Du coup ouais je vais me débrouiller je devrais m'en sortir, je passe du C à l'asm avec la toolchain, je fais quelques modifs dans le code (entre autre j'enlève le main etc) et ensuite j'assemble en .8xv avec fasmg + donne un .lib dans le dossier de libload et un .h pour que les programmes puissent utiliser la lib.

Merci pour vos réponses ;)