bibliothèque

Le
Jean Pierre Daviau
Bonjour à tous,

Vous pouvez ajuster mon explication? Je voudrais un exemple
simple du 'comment' faire.
Google: "Tu peux créer tes propres librairies en produisant des
.o à partir de tes . c(option -c du cc), et en les regroupant
avec ar ."Yves ROMAN <yro@unilog.fr>

Usage: ar [emulation options] [-]{dmpqrstx}[abcfilNoPsSuvV]
[member-name] [count
] archive-file file
ar -M [<mri-script]

--

dans malib.h

void usage(void);
--

malib.a

compilation avec un fichier .o de usag.c

void usage(){
printf("Usage");
}

ar -> quelque chose usage.o donnerait malib.a

--
#include <malib.h>

int main(int argc,char *argv[])
{
usage();

return 0;
}


=


Jean Pierre Daviau
--
windows Xp
asus p4 s533/333/133
Intel(R) Celeron (R) CPU 2.00 GHz
Processor Radeon7000 0x5159 agp
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Pierre Maurette
Le #996268
Bonjour à tous,


Bijôr

Vous pouvez ajuster mon explication? Je voudrais un exemple
simple du 'comment' faire.
Google: "Tu peux créer tes propres librairies en produisant des
.o à partir de tes . c(option -c du cc), et en les regroupant
avec ar ."Yves ROMAN

Rien vu de ressemblant sur Google, sauf votre prose. Ce ne serait pas
une réponse par mail plutôt ? Si ce n'est pas le cas, soyez encore plus
prudent avec les explications tutoyantes sur une page internet qu'avec
les autres.

[...]

dans malib.h


mabib ou mylib ;-)

[...]

Je sais que vous êtes sous Windows. La chaîne de traitement dont il est
question ici est gcc. Si vous êtes avec du Borland, c'est autre chose,
.obj et .lib, et pas complètement simple. Voyez alors "bcb5tool.hlp" et
Google.

D'une façon générale, et en opposition avec ce qu'on peut souvent lire,
je pense que le tout à la main n'est pas la panacée pour apprendre.
D'autant que les ascètes de l'outillage ne jurent souvent que par
emacs, parangon de simplicité comme nul ne l'ignore ;-).
Un IDE comme DevCpp, Code::blocks ou Eclipse/CDT vous permettra de
créer des projets à partir de modèles et ensuite de regarder la ligne
de commande et le makefile, après l'avoir au besoin généré.

Un exemple gcc:

Projet 1, la bibliothèque mabib:

#include
void f11(void){puts("f11");}

void f12(void){puts("f12");}

#include
void f21(void){puts("f21");}

void f22(void){puts("f22");}

#ifndef MABIB_
#define MABIB_

void f11(void);
void f12(void);
void f21(void);
void f22(void);

#endif /*MABIB_*/

Construction:
gcc [vos options] -c -o[path]mod1.o [path]mod1.c
gcc [vos options] -c -o[path]mod2.o [path]mod2.c
ar -r [path]libmabib.a [path]mod2.o [path]mod1.o

Attention, [path] est optionnel et ne désigne pas nécessairement
partout le même chemin, absolu ou relatif.


Projet 2, le test de la bibliothèque mabib:

Vous placez une copie de mabib.h avec votre fichier source. Une
solution rapide, mais il y en a d'autres.

#include #include #include "mabib.h"

int main(void) {
puts("Test mabib");
f11();
f12();
f21();
f22();
return EXIT_SUCCESS;
}

Construction:
gcc [vos options] -c -o[path]testmabib.o [path]testmabib.c
gcc -L[path_to_malib] -o[path]testmabib.exe [path]testmabib.o -lmalib

Attention, [path] est optionnel et ne désigne pas nécessairement
partout le même chemin, absolu ou relatif.

--
Pierre Maurette

Jean Pierre Daviau
Le #996266
Merci

En fait, si je tiens à un exemple, c'est que ça rate si souvent,
hez moi, que je finis par ne plus y croire. Cela est plus de
l'ordre du diagnostique médical (malheureusement) que de
l'exactitude.

========= Google: "Tu peux créer tes propres librairies en produisant des
.o à partir de tes . c(option -c du cc), et en les regroupant
avec ar ."Yves ROMAN
http://groups.google.com/group/fr.comp.lang.c/browse_thread/thread/224bf8d62e656d26/354ef36f5b7f0490?lnk=gst&q=en+les+regroupant&rnum=1&hl=en#354ef36f5b7f0490
=============================
Pour ce qui est des compilateurs: je les ai tous utilisé . . . un
peu. Par ordre d'utilisation: borland, Dev CPP, cygwin, mingh,
lcc, visual c++, tc, msys. Je sais qu'il y en a d'autres.

Dev CPP n'est plus supporté . . . je crois. Dans mon cas, ça n'a
peut-être pas d'importance.
Code::blocks: Ça fonctionne sous windows ça? Dois-je demeurer
avec DevCPP?

============================
D'autant que les ascètes de l'outillage ne jurent souvent que
par emacs, parangon de simplicité comme nul ne l'ignore ;-).
Je l'ignorais.


Les dieux du C m'observent sûrement et la paranoïa germe.

Espérons que cette fois, je pars du bon pied et que je ne
trébucherai pas trop souvent . . . ;-)

PulkoMandy
Le #996265
Code::blocks: Ça fonctionne sous windows ça? Dois-je demeurer
avec DevCPP?


Ça fonctionne oui. Quand à DevCPP, il est écrit en Delphi, et je comprends
que son auteur en ait eu marre de faire du Delphi maintenant qu'il connait
bien le C... :)

Regarde aussi du côté d'Open Watcom. Il me semble qu'ils ont une IDE pour
windows.

Jean Pierre Daviau
Le #996264
Construction:
gcc [vos options] -c -o[path]testmabib.o [path]testmabib.c
gcc -L[path_to_malib] -o[path]testmabib.exe
[path]testmabib.o -lmalib
gcc -L[path_to_mabib] -o[path]testmabib.exe

[path]testmabib.o -lmabib

Me trompe-je?
Chez moi ça marche.

Antoine Leca
Le #996263
En news:,
PulkoMandy va escriure:
Quand à DevCPP, il est écrit en Delphi, et je
comprends que son auteur en ait eu marre de faire du Delphi
maintenant qu'il connait bien le C... :)


N'importe kawak.
En fait, l'auteur ne participe apparement plus au projet depuis un lustre,
et la transformation en C++ est elle aussi au point mort semble-t-il. ÀMHA
ils ont quittés l'université et sont entrés dans la vraie vie...


Regarde aussi du côté d'Open Watcom. Il me semble qu'ils ont une IDE
pour windows.


Je ne crois pas que l'IDE d'OpenWatcom permette les projets qui fabriquent
des bibliothèques (ce qui reste le sujet de cette enfilade).
Je regarderais plutôt TurboC++ (http://www.turboexplorer.com/cpp) ou
VisualC++
(http://www.microsoft.com/france/msdn/vstudio/express/default.mspx), tous
deux librement téléchargeables avec ADSL, et tous deux d'énormes outils, qui
font des tas de choses, dont probablement (non testé) la création de «
projet bibliothèques ».


Antoine

Publicité
Poster une réponse
Anonyme