GNT sans publicité, site mobile, fonctionnalitées exclusives...

création d'une API

Le
xdunat
Bonjour,
Je souhaite créer une API (sous AIX) fournissant 2 fonctions :int
f1(arg1); et int f2(arg1);
Ces deux fonctions sont écrit dans un fichier api.c (et api.h).
Le problème c'est que c'est deux fonctions sont assez conséquentes,
et donc font appel à d'autres sous fonctions défini dans source.c (et
le fichier d'entete source.h).
Le problème c'est que si je crée une librairie de la manière
suivante :
ar r api api.o source.o
et
ranlib api

Lorsque je livrerai la librairie libapi on pourra utiliser les
fonctions f1, f2 mais aussi mes sous fonctions. Au départ j'avais tout
mis dans le même fichier et mis les sous fonctions comme "static",
mais le fichier devient trop grand.
Comment puis-je faire pour que seul les fonctions souhaitées soit
réutilisables ? Au départ je pensais fournir que le api.h, comme ça
les utilisateurs ne connaissant pas les autres, à priori ils ne les
utiliseront pas. Mais se n'est pas très rigoureux.
Lire les 7 réponses

Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Eric Levenez
Le #979251
Le 4/01/07 19:05, dans

Cette question n'a rien à voir avec le C, mais est uniquement liée à ta
chaîne de compilation. Il faudrait poster ta question sur un NG lié à ton
système.

Lorsque je livrerai la librairie libapi on pourra utiliser les
fonctions f1, f2 mais aussi mes sous fonctions. Au départ j'avais tout
mis dans le même fichier et mis les sous fonctions comme "static",
mais le fichier devient trop grand.


Tu mets toutes tes fonctions annexes dans des sources séparés et tu les
places dans une bibliothèque. Ensuite tu prends ton source avec tes 2
fonctions et tu fais une édition de lien partiel avec ta bibliothèque. Il ne
restera en extern que tes fonctions. Regarde la doc de ton linker.

--
Éric Lévénez -- Unix is not only an OS, it's a way of life.

xdunat
Le #979248

Le 4/01/07 19:05, dans
Lorsque je livrerai la librairie libapi on pourra utiliser les
fonctions f1, f2 mais aussi mes sous fonctions. Au départ j'avais tout
mis dans le même fichier et mis les sous fonctions comme "static",
mais le fichier devient trop grand.


Tu mets toutes tes fonctions annexes dans des sources séparés et tu l es
places dans une bibliothèque. Ensuite tu prends ton source avec tes 2
fonctions et tu fais une édition de lien partiel avec ta bibliothèque . Il ne
restera en extern que tes fonctions. Regarde la doc de ton linker.

OK. Merci. Après quelques recherches sur mon éditeur de lien (ld),

j'ai fini par trouver comment le faire.


xdunat
Le #979105


Le 4/01/07 19:05, dans
Lorsque je livrerai la librairie libapi on pourra utiliser les
fonctions f1, f2 mais aussi mes sous fonctions. Au départ j'avais t out
mis dans le même fichier et mis les sous fonctions comme "static",
mais le fichier devient trop grand.


Tu mets toutes tes fonctions annexes dans des sources séparés et tu les
places dans une bibliothèque. Ensuite tu prends ton source avec tes 2
fonctions et tu fais une édition de lien partiel avec ta bibliothèq ue. Il ne
restera en extern que tes fonctions. Regarde la doc de ton linker.

OK. Merci. Après quelques recherches sur mon éditeur de lien (ld),

j'ai fini par trouver comment le faire.


Ben en fait, ce n'est pas ça. Toutes mes fonctions sont visibles.

Si le forum n'est pas le bon pour ma question, ou dois-je poster ?



jacob navia
Le #979102




Le 4/01/07 19:05, dans

Lorsque je livrerai la librairie libapi on pourra utiliser les
fonctions f1, f2 mais aussi mes sous fonctions. Au départ j'avais tout
mis dans le même fichier et mis les sous fonctions comme "static",
mais le fichier devient trop grand.


Tu mets toutes tes fonctions annexes dans des sources séparés et tu les
places dans une bibliothèque. Ensuite tu prends ton source avec tes 2
fonctions et tu fais une édition de lien partiel avec ta bibliothèque. Il ne
restera en extern que tes fonctions. Regarde la doc de ton linker.



OK. Merci. Après quelques recherches sur mon éditeur de lien (ld),
j'ai fini par trouver comment le faire.



Ben en fait, ce n'est pas ça. Toutes mes fonctions sont visibles.

Si le forum n'est pas le bon pour ma question, ou dois-je poster ?



C'est impossible mon vieux, au moins mon linker ne fais pas ca,
et je vois pas comment ca pourrait marcher.

Si les sous-fonctions sont invisibles, comment les trouver alors
pour fair l'edition de liens?


jacob

http://www.cs.virginia.edu/~lcc-win32




xdunat
Le #979101


Le 4/01/07 19:05, dans
Lorsque je livrerai la librairie libapi on pourra utiliser les
fonctions f1, f2 mais aussi mes sous fonctions. Au départ j'avais t out
mis dans le même fichier et mis les sous fonctions comme "static",
mais le fichier devient trop grand.


Tu mets toutes tes fonctions annexes dans des sources séparés et tu les
places dans une bibliothèque. Ensuite tu prends ton source avec tes 2
fonctions et tu fais une édition de lien partiel avec ta bibliothèq ue. Il ne
restera en extern que tes fonctions. Regarde la doc de ton linker.

OK. Merci. Après quelques recherches sur mon éditeur de lien (ld),

j'ai fini par trouver comment le faire.


En fait, ça ne fonctionne toujours pas.
J'ai bien mis les fichiers annexes dans une bibliothèque
(libannexe.a).
Je compile mes sources avec :
cc -o api.o -lannexe -c api.c
Mais les fonctions annexes sont toujours utilisables avec api.o.



Publicité
Suivre les réponses
Poster une réponse
Anonyme