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 8732 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 5 février 2025 - 5 mars 2007 à 22:47
kilian Messages postés 8732 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 5 février 2025 - 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?
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
- Création compte google - Guide
- Media creation tool - Télécharger - Systèmes d'exploitation
- Logiciel création karaoké gratuit - Télécharger - DJ & Karaoké
1 réponse
kilian
Messages postés
8732
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
5 février 2025
1 526
4 mars 2007 à 19:32
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....
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....
5 mars 2007 à 21:47
5 mars 2007 à 22:47