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:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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.