Création d'une api sous linux embarqué
Résolu
akira44
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
kilian Messages postés 8732 Date d'inscription Statut Modérateur Dernière intervention -
kilian Messages postés 8732 Date d'inscription Statut Modérateur Dernière intervention -
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?
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:
- Création d'une api sous linux embarqué
- Creation compte gmail - Guide
- Création site web - Guide
- Media creation tool - Télécharger - Systèmes d'exploitation
- Création compte google - Guide
- Linux reader - Télécharger - Stockage
1 réponse
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....
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....
akira44
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
Merci pour ces informations. C'est beaucoup plus clair pour moi maintenant. Plus qu'a me lancer dans la réalisation de l'API ;-)
kilian
Messages postés
8732
Date d'inscription
Statut
Modérateur
Dernière intervention
1 526
:-)