Bonjour,
Je cherche à comprendre comment créer et utiliser une libraire (statique dans un premir temps) à partir d'un ensemble de classes.
Si on a projet regroupant plusieurs classes dont une qui est un peu plus haut niveau qui sert à lancer les calculs:
1 2 3 4 5 6
| Classe1.h/cpp
Classe2.h/cpp
...
ClasseN.h/cpp
et
Calcul.h/cpp |
Si maintenant je veux executer un calcul, je fais dans mon main.cpp:
1 2 3 4 5 6 7 8
| #include "Calcul.h"
int main()
{
Calcul c = Calcul();
c.execute(args); // args = plein d'arguments
return (0);
} |
Admettons que je veille à présent faire une librairie de mon projet (Classe1...ClasseN et Calcul), je fais:
1 2 3
| 1. je compile toutes mes classes pour obtenir les *.o
2. je crée ma lib en faisant un truc du genre:
ar -rv project.lib Classe1.o ... ClasseN.o Calcul.o |
Mais ensuite comment je l'utilise?
Je voudrais faire un truc du genre:
Utilisation.cpp
1 2 3 4 5 6 7 8
| // Question 1: dois-je ajouter #include "Calcul.h"
// Question 2: dois-je déclarer la fonction void execute(args);
void launchCalcul(args) // args = meme argument que pour Calcul::execute()
{
Calcul c = Calcul();
c.execute(args); // args = plein d'arguments
} |
Il faudra ensuite linker avec la lib:
g++ Classe1;o .. ClasseN.o Calcul.o -L. -lproject -o Utilisation
C'est un peu flou pour moi, surout l'utilisation de la lib, quelle est la bonne manière de faire, si cela est possible.
Merci de votre aide.
Partager