Créer une bibliotheque en c++
BQss
-
Char Snipeur Messages postés 10112 Statut Contributeur -
Char Snipeur Messages postés 10112 Statut Contributeur -
Bonjour, j'ai créé un ensemble des fonction generant des lois aleatoires usuelles et je voudrais en faire une bibliotheque pour pouvoir appeler ces fonctions depuis n'importe qu'elle code c++.
Mais le probleme c'est que je n'ai "aucune" notion sur comment faire cela.
Je sais que je dois faire un *.h, puis generer une bibliotheque statique .a .
Mais comment proceder?
J'utilise devc++, mais si vous savez comment m'expliquer pour créer ca sans l'aide de dev c++(en compilant un a un ce qu'il faut sans utiliser un projet) je suis preneur aussi.
Merci de votre aide...
Mais le probleme c'est que je n'ai "aucune" notion sur comment faire cela.
Je sais que je dois faire un *.h, puis generer une bibliotheque statique .a .
Mais comment proceder?
J'utilise devc++, mais si vous savez comment m'expliquer pour créer ca sans l'aide de dev c++(en compilant un a un ce qu'il faut sans utiliser un projet) je suis preneur aussi.
Merci de votre aide...
A voir également:
- Créer une bibliothèque en c
- Comment créer un groupe whatsapp - Guide
- Créer un compte google - Guide
- Créer une adresse hotmail - Guide
- Créer un lien pour partager des photos - Guide
- Créer une liste déroulante excel - Guide
6 réponses
Salut BQss
Ton message date un peu, je ne l'ai pas vu plus tôt. Bref...
Pour générer une bibliothèque, il faut bien séparer l'implementation des fonctions et variable à mettre dans les .cpp de leurs déclaration à mettre dans les .h.
Une fois que cela est fait, tu compile le tout de façon à transformer tes .cpp en .o
Là, le plus gros du boulot est fait. Il suffit ensuite d'archiver tout les .o dans un .a, grace à la commande ar :
ar -r libTOTO.a *.o
puis il faut faire l'index :
ranlib libTOTO.a
quelques rappel sur les déclaration :
double a;
est une déclaration ET une implémentation, dans un .h il faut mettre extern double a;
les class est struct doivent être mise. Il existe deux type de déclaration :
class a; qui défini juste la class a afin de pouvoir utiliser a comme type
class a{...}; contenant l'ensemble des membres de la class. Les fonctions, constructeurs et méthodes de la classe sont aussi à implémenter dans un .cpp.
En revanche, les template et fonction inline sont à conserver dans le .h.
Une fois ton .a créé, il faut inclure les .h dans ton fichier source où tu veux utilisé ta bibliothèque, et lier la bibliothèque avec -lTOTO sous gcc.
Ton message date un peu, je ne l'ai pas vu plus tôt. Bref...
Pour générer une bibliothèque, il faut bien séparer l'implementation des fonctions et variable à mettre dans les .cpp de leurs déclaration à mettre dans les .h.
Une fois que cela est fait, tu compile le tout de façon à transformer tes .cpp en .o
Là, le plus gros du boulot est fait. Il suffit ensuite d'archiver tout les .o dans un .a, grace à la commande ar :
ar -r libTOTO.a *.o
puis il faut faire l'index :
ranlib libTOTO.a
quelques rappel sur les déclaration :
double a;
est une déclaration ET une implémentation, dans un .h il faut mettre extern double a;
les class est struct doivent être mise. Il existe deux type de déclaration :
class a; qui défini juste la class a afin de pouvoir utiliser a comme type
class a{...}; contenant l'ensemble des membres de la class. Les fonctions, constructeurs et méthodes de la classe sont aussi à implémenter dans un .cpp.
En revanche, les template et fonction inline sont à conserver dans le .h.
Une fois ton .a créé, il faut inclure les .h dans ton fichier source où tu veux utilisé ta bibliothèque, et lier la bibliothèque avec -lTOTO sous gcc.
plz je peut demander d'envoyer un langage c de bibliotheque parce que j'ai un mini projet pour le faire et j'ai besoin de vous
Salut , j ai besoin la liste des matèrieaux pour monter une bibliothèque virtuelles
merci bye @+ portez vous bien
merci bye @+ portez vous bien
moi je veut creer une bibliothèque virtuel "médiathèque" pour ranger met 500 et peut etre plus dvd comment faire
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Salut !!
Après avoir créé libTOTO.a, comment faire ensuite. Je m'explique, ma librairie contient un fichier op_base.h et le op_base.cpp associé.
Dans mon source principal, j'inclus comme ça:
#include <op_base.h>
...
et je compile comme ça:
g++ -l chemin/libTOTO.a -c code.cpp
Mais il me dit que op_base.h n'existe pas.
J'ai essayé d'enlever le .a, d'enlever le préfixe lib,... mais rien n'y fait
Que faut-il faire ?
Après avoir créé libTOTO.a, comment faire ensuite. Je m'explique, ma librairie contient un fichier op_base.h et le op_base.cpp associé.
Dans mon source principal, j'inclus comme ça:
#include <op_base.h>
...
et je compile comme ça:
g++ -l chemin/libTOTO.a -c code.cpp
Mais il me dit que op_base.h n'existe pas.
J'ai essayé d'enlever le .a, d'enlever le préfixe lib,... mais rien n'y fait
Que faut-il faire ?