Création d'une api sous linux embarqué

Résolu/Fermé
akira44 Messages postés 4 Date d'inscription dimanche 4 mars 2007 Statut Membre Dernière intervention 7 mars 2007 - 4 mars 2007 à 14:52
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 - 5 mars 2007 à 22:47
Bonjour à tous,
Je dois réaliser une api pour commander un daemon sous linux 2.2 embarqué. Je pensais réaliser une bibliothèque dynamique .so qui regrouperait l'ensemble des commandes nécessaires à la communication de l'utilisateur avec ce daemon. Alors voila ma question :
1/ Est-ce qu'une bibliothèque dynamique peut jouer à elle-seule le rôle d'API?
2/Comment réalise t'on un .so? Je ne connais pas trop le domaine mais je compte faire ca en C++. Je suppose que je dois partir d'un api.h et d'un api.cpp et tout compiler ensuite. Mais quelle sont les options gcc nécessaire à l'optention d'une lib dynamique. Et quand j'aurai mon api.so, aurai-je toujours besoin de mon api.h pour faire fonctionner faire tourner la librairie dynamique?
A voir également:

1 réponse

kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
4 mars 2007 à 19:32
1/ Est-ce qu'une bibliothèque dynamique peut jouer à elle-seule le rôle d'API?

Oui, c'est même l'idéal...

2/Comment réalise t'on un .so? Je ne connais pas trop le domaine mais je compte faire ca en C++. Je suppose que je dois partir d'un api.h et d'un api.cpp et tout compiler ensuite. Mais quelle sont les options gcc nécessaire à l'optention d'une lib dynamique. Et quand j'aurai mon api.so, aurai-je toujours besoin de mon api.h pour faire fonctionner faire tourner la librairie dynamique?

Pour compiler une librairie dynamique c'est très simple, il faut juste rajouter l'option -shared dans la commande gcc.
Une librarie c'est comme une application habituelle mais sans main dedans.
Les gens qui voudront compiler des applis utilisant ton api auront besoin de ton api.h, cat c'est le fichier qui fournit les renseignements necessaires à l'utilisateur et à son compilateur pour utiliser ta librairie.

Une fois leur appli compilée, ils auront juste besoin de la librarie partagée, l'appli n'a pas besoin de api.h pour tourner.

Note que dans les fichiers .h , on doit voir les classes et les fonctions que tu proposes pour ton api. Ces fichiers sont obligatoires pour compiler un prog utilisant ta librarie.

Mais l'implémentation des méthodes de ces classes et de ces fonctions
doit être faite (en général) dans le fichier cpp. Ce fichier sera compilé dans ta librairie et n'a pas besoin d'être visible pour ceux qui utilisent ta librairie, bien que ça puisse leur être utile pour mieux comprendre comment elle fonctionne.
Et si ton programme a une licence open-source tu es tenu de mettre ces fichiers cpp à la disponibilité de tous....

3
akira44 Messages postés 4 Date d'inscription dimanche 4 mars 2007 Statut Membre Dernière intervention 7 mars 2007
5 mars 2007 à 21:47
Merci pour ces informations. C'est beaucoup plus clair pour moi maintenant. Plus qu'a me lancer dans la réalisation de l'API ;-)
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
5 mars 2007 à 22:47
:-)
0