Comment creer un "vrai" librairie ????????

Signaler
Messages postés
64
Date d'inscription
mardi 21 juin 2005
Statut
Membre
Dernière intervention
5 avril 2007
-
Messages postés
64
Date d'inscription
mardi 21 juin 2005
Statut
Membre
Dernière intervention
5 avril 2007
-
Salut à tous.



D'abord le "vrai" c'était pour faire venir du monde pas pour vexer qui que ce soit. Ensuite,

je sais que ça a du déjà être abordé mais voilà je cherche un tuto pour creer une librairie.



Mais attention je suis peut-être exigeant mais je ne veux pas de truc
MFC et je préférerai éviter les trucs du style pour utiliser la lib il
faut faire loadlibrary ou un truc du genre.

En fait j'aimerai un guide qui permette de faire au final une
librairie qu'on utilise comme les autres. C'est à dire qu'on met un
.lib dans le linker et des .h en include.



Voilà et qu'avec ça comme avec les autres lib on puisse utiliser fonctions et classes.



enfin si c'est possible, ça existe des guides? des livres? bref quelque chose?

19 réponses

Messages postés
933
Date d'inscription
dimanche 1 avril 2001
Statut
Modérateur
Dernière intervention
9 janvier 2012
2
Il te suffit de créer une DLL.
Sur ce site tu trouveras de multiple exemples.


Pour les livres : http://brunews.free.fr/brunews/index.htm

@+
Arnotic,
Admin CS, MVP Visual C++
Messages postés
64
Date d'inscription
mardi 21 juin 2005
Statut
Membre
Dernière intervention
5 avril 2007

Je te remercie pour ton aide.

Mais je cherche plus des guides que des exemples et je cherche vraiment
comment faire des libs comme celles qu'ont peut télécharger compiler
lier le projet avec un .lib et utiliser les include.



Sur le site que tu indiques, je n'ai rien trouver en rapport.
Messages postés
1878
Date d'inscription
jeudi 16 octobre 2003
Statut
Membre
Dernière intervention
16 mars 2011
1
:)

une dll impose un loadLibririe ou assimilé.



jette un oeil aux Bxxx, librairie se trouvant par exemple dans la majorité de mes sources.



Le principe est que le répertoire bibli soit tjs accessible et contienne les sources,

les sources étant compilés dans tous les projets,



si les lib sont maj, cela implique de recompiler tous les projets les utilisant,

mais en les incluant, pas de lib externes, ni de loadlibrary ni autre

et un gain en vitesse


___________________________________________________________
Magicalement
Nono
Messages postés
64
Date d'inscription
mardi 21 juin 2005
Statut
Membre
Dernière intervention
5 avril 2007

Justement, je ne souhaite pas absolument avoir une dll (d'ailleurs on pourrait dire que je ne le souhaite absolument pas).



Et c'est ce que je cherche à faire justement, je n'en connais pas le chemin le guide la manière de faire.

Moi ce qui m'intéresse, c'est savoir si on peut créer ce genre libraire
que l'on utilise courament. Celle que l'on compile une fois qui
produise un ou des .lib qu'on a plus qu'à ajouter au linker et utiliser
les .h fournit.

Voilà c'est possible ça?
Messages postés
1878
Date d'inscription
jeudi 16 octobre 2003
Statut
Membre
Dernière intervention
16 mars 2011
1
Oui

très simple avec des outils comme gcc

(MakeFile)

et faisable en utilisant les propriétés de postBuild ou PréBuild pour copier les bonne lib depuis Visual.

___________________________________________________________
Magicalement
Nono
Messages postés
64
Date d'inscription
mardi 21 juin 2005
Statut
Membre
Dernière intervention
5 avril 2007

Je sais pas pourquoi mon message est sortit blanc....
Enfin je disais, t'aurai pas un guide complet que je dorme dedans?

( il parait qu'on assimile pendant le sommeil... :) )
Messages postés
1878
Date d'inscription
jeudi 16 octobre 2003
Statut
Membre
Dernière intervention
16 mars 2011
1
par exemple



http://oucsace.cs.ohiou.edu/~bhumphre/makefile.html



vois le site de "djgpp" pour gcc sous windows



google est ton ami.


autrement, tu trouvera plein d'exemple, mm sur ce site (voir les sources unix ou gcc/djgpp)

++
___________________________________________________________
Magicalement
Nono
Messages postés
64
Date d'inscription
mardi 21 juin 2005
Statut
Membre
Dernière intervention
5 avril 2007

mais avec visual studio?

Parce qu'en fait je ne sais pas trop quoi chercher. Si je tape dans google:

"creer librairie qui donne .h et .lib" je suis pas sur que ce soit efficace....



enfin si t'en as pour visual studio je suis preneur, en attendant je continue à chercher.
Messages postés
95
Date d'inscription
mardi 9 mars 2004
Statut
Membre
Dernière intervention
20 mars 2006

Salut,

Tout simplement ...

Si tu bosses avec Visual C++ : je ne sais pas ...

Si tu bosses avec Dev-C++ : Projet, nouveau,Static Library

Là tu fais ton code en .h(ou.hpp, etc...) et en .cpp, de la manière
habituelle quoi, et quand tu fais Compiler, ca te pond un .a ...

Ensuite si tu veux faire un projet qui s'en sert, tu dois linker ton .a ... ;)

Si tu y vas à coup de g++/gcc sous linux :

g++ -c fichier1.cpp

g++ -c fichier2.cpp

g++ -c fichier3.cpp

etc...

ar cr libfichier.a fichier1.o fichier2.o fichier3.o

ranlib libfichier.a

tout ça dans le dossier ou se trouvent les .cpp

ensuite pour compiler un projet se servant de libfichier, tu dois faire :

g++ file.o file2.o -lfichier [-L.] -o exécutable

j'ai mis le [-L.] entre [] car il est optionnel, -Lrepertoire indique le répertoire ou se trouvent le/les .lib et .a ...

ici on met ".", qui signifie répertoire courant ...

voili voilou

Bonne progr,

++
Messages postés
95
Date d'inscription
mardi 9 mars 2004
Statut
Membre
Dernière intervention
20 mars 2006

C'est bon?
Messages postés
64
Date d'inscription
mardi 21 juin 2005
Statut
Membre
Dernière intervention
5 avril 2007

ben pas vraiment puisque je cherchais comment faire avec visual c++.
Messages postés
95
Date d'inscription
mardi 9 mars 2004
Statut
Membre
Dernière intervention
20 mars 2006

Quand tu ouvres Visual C++ ... Tu as quoi comme possibilité de projets ?

Alp
Messages postés
64
Date d'inscription
mardi 21 juin 2005
Statut
Membre
Dernière intervention
5 avril 2007

alors là des tas. Mais y'a des menus pour faire des librairie en tout
genre. Mais c'est pas dedans que je vais trouver un tuto pour faire ce
genre de lib.
Messages postés
95
Date d'inscription
mardi 9 mars 2004
Statut
Membre
Dernière intervention
20 mars 2006

Bah il suffit de donner les bonnes options de compilations au compilateur de Visual C++

Et pour cela, faut créér un projet de librairie Statique... .lib ou .a quoi ...

T'as rien qui ressemble?

fais la liste, on verra bien ...
Messages postés
64
Date d'inscription
mardi 21 juin 2005
Statut
Membre
Dernière intervention
5 avril 2007

forcement qu'il suffit d'entrer les bonnes options. Justement je cherche un guide de ces fameuses options.

Et je ne crois pas que lister toutes les options possibles des projets de librairies soit un solution.
Messages postés
95
Date d'inscription
mardi 9 mars 2004
Statut
Membre
Dernière intervention
20 mars 2006

Bah trouves tout seul dans toutes les propostiions qu'il y a celle qui est la bonne ...

je ne peux t'aider car actuellement je ne suis pas sur mon ordi et je n'ai pas vc++ ...

bon courage
Messages postés
64
Date d'inscription
mardi 21 juin 2005
Statut
Membre
Dernière intervention
5 avril 2007

tu sais il suffit pas d'avoir le bon projet sélectionné pour que ça fonctionne.

je pense qu'il faut un guide ou un tuto pour apprendre. Enfin c'est juste mon avis.
Messages postés
95
Date d'inscription
mardi 9 mars 2004
Statut
Membre
Dernière intervention
20 mars 2006

Ecoute ...

Un fichier .lib ou .a ou "vraie librairie" comme tu dis tu sais ce que c'est ?

Au lieu de pondre un .exe, visual c++ va te pondre un .lib ou .a ...

Qui est composé de tous les .cpp de ton projet!

c'est à dire tu vas devoir garder et de servir des .h(ou .hpp) car toutes les _déclarations_ y sont.

Pour te servir des types ou fonctions ou macro ou etc... qui y sont définies, tu dois donc les inclure ces .h ou .hpp ...

Quand au .cpp ? que deviennent-ils ?

ils sont tout d'abord compilé en fichiers .o(pour g++ du moins), et par
la suite le compilo va tous les rassembler et au lieu de faire un .exe
il en fait un .a ou .lib tout simplement.

Ca c'est le processus ...

Maintenant comment faire ?

Ben tu dois sélectionner le type de projet adéquat, faire des "couples"
de fichiers .h(ou .hpp)/.cpp : les .h/.hpp contiendront les
déclarations seulement, les .cpp l'implémentation...

Ensuite le compilateur fera le reste...

Voila pourquoi tu as juste besoin de savoir quel type de projet il faut faire ...
Messages postés
64
Date d'inscription
mardi 21 juin 2005
Statut
Membre
Dernière intervention
5 avril 2007

Oui ouh là je me suis moi même égaré.

Là encore pour ça, ça peut aller, j'ai pu faire une librairie. Mais
justement comme je disais de l'autre coté, le .h contient un include
d'une classe d'id3lib donc du coup ça ne marche plus puisque les deux
libs initiales se retrouvent dans le même projet.