|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
![]() ![]() Inscription : juillet 2006 Messages : 2 662 ![]() |
Bonjour,
J'ai un projet dont le but est de faire une bibliotheque de fonction manipulant n'importe quel ensemble mathématique. Bref en gros j'ai: fichier.h fichier.c qui contient l'implémentation de mes fonctions main. c (plusieurs main en fait) permettant de tester ma bliotheque. On me demande de réaliser un bibliothèque au sens linux du terme .a ou .so... Or moi je ne sais pas comment faire avec la description des différents fichiers décrits ci-dessus. Comment créer un .a ou .so (sachant que je ne sais pas trop de que c'est même après recherche). Merci d'avance
__________________
la culture c'est comme la confiture moins on en a plus on l'étale. Vous souhaitez contribuer aux rubriques Solutions d'entreprises ou BI, contactez-moi Mes tutos |
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Louis-Guillaume MORANDConsultant @ Microsoft Inscription : mars 2003 Messages : 10 713 ![]() |
il semblerait que l'extension ne serve que d'indication.
comme on a les .dll sous Windows, on a les .so sous linux qui sont les librairies dynamiques (et donc qu'on peut charger à la volée). et pour les créer, plutot qu'un exe, il suffit de mettre le flag -c au compilateur. (pour le a, il s'agit d'une librairie statique et là je sais pas trop ce que c'est )p-e ce lien pourrait-il t'aider: http://www.adp-gmbh.ch/cpp/gcc/create_lib.html il parle de gcc donc ce sera p-e à adapter à ton compilateur
__________________
moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom |
|
00
|
|
|
#3 | |
![]() ![]() Inscription : juillet 2006 Messages : 2 662 ![]() |
merci je sais lire ce qu'il y a sur google...
et non le flag -c à la compilation n'a pas ce résultat. Je cherche justement quelle est la commande à saisir. Pour le moment j'ai mon .h mes .c puis mes .o pour mon exe. Mais il me faut des .a ou .so Je vais regarder le lien apparement il y a un exemple.merci Citation:
__________________
la culture c'est comme la confiture moins on en a plus on l'étale. Vous souhaitez contribuer aux rubriques Solutions d'entreprises ou BI, contactez-moi Mes tutos |
|
|
|
00
|
|
|
#4 | |
![]() ![]() ![]() Louis-Guillaume MORANDConsultant @ Microsoft Inscription : mars 2003 Messages : 10 713 ![]() |
d'après le lien,
"-c" permet d'obtenir des .o puis la commande "ar" permet de transformer le .o en .a Citation:
__________________
moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom |
|
|
00
|
|
|
#5 |
![]() ![]() Inscription : juillet 2006 Messages : 2 662 ![]() |
La commande marche j'ai bien un .a ...mais si quelqu'un pouvait m'expliquer qu'elle en est l'utilité alors que j'ai mon .h mes .c et mes fichiers tests qui tournent..pourquoi on me demande un .a ou .so a quoi ca sert??
__________________
la culture c'est comme la confiture moins on en a plus on l'étale. Vous souhaitez contribuer aux rubriques Solutions d'entreprises ou BI, contactez-moi Mes tutos |
|
|
00
|
|
|
#6 |
![]() ![]() ![]() Louis-Guillaume MORANDConsultant @ Microsoft Inscription : mars 2003 Messages : 10 713 ![]() |
et c'est juste pour créer une librairie externe. Ensuite pour montrer quelle marche, il faut créer un programme avec juste une méthode main qui charge le fichier .so puis qui appelle les méthodes de .so
pour le .so Code :
gcc -o GenExt2FS.so -shared GenExt2FS.o -lgcc
__________________
moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom |
|
00
|
|
|
#7 |
|
Membre expérimenté
![]() Dev ASP.NET/jQuery ; Admin ORACLE Inscription : septembre 2007 Messages : 418 ![]() |
.so = bibliothèque partagé (shares object).
.a = bibliothèque statiques On te demande de faire une bibliothèque, qui servira pour d'autres programmes. |
|
|
00
|
|
|
#8 |
![]() ![]() |
Un exemple simple de blibliothèque statique :
http://www.cmi.univ-mrs.fr/~contensi...n=env&page=bib
__________________
"Never use brute force in fighting an exponential." (Andrei Alexandrescu) Mes articles dont Conseils divers sur le C++ Une très bonne doc sur la STL (en) Why linux is better (fr) |
|
|
00
|
|
|
#9 |
|
Expert Confirmé
![]() Inscription : mars 2004 Messages : 3 109 ![]() |
tu as souvent deux facons de déployer une application.
Soit en utilisant les librairies dynamiques : Tout programme peut se lier dessus. L'appli se lie aux librairies existantes et rajoutent les siennes. Soit en utilisant une librairie statique : dans ce cas, l'appli est souvent déployé dans un répertoire unique avec librairie, programme...etc
__________________
Ancien Rédacteur Linux && Unix / Nouveau retraité de DVP The UNIX way of sex: gunzip;strip;touch;finger;mount;fsck;more;yes;umount;sleep Je ne réponds ni aux messages privées, ni aux messages plein de fautes... |
|
|
00
|
|
|
#10 |
![]() ![]() Inscription : juillet 2006 Messages : 2 662 ![]() |
Merci à tous ceux qui m'ont répondu et éclairé
__________________
la culture c'est comme la confiture moins on en a plus on l'étale. Vous souhaitez contribuer aux rubriques Solutions d'entreprises ou BI, contactez-moi Mes tutos |
|
|
00
|
|
|
#11 |
|
Membre éprouvé
![]() Inscription : janvier 2005 Messages : 481 ![]() |
Si jamais tu dois utiliser une lib dynamique, tu pourrais regarder du côté de la librairie dl http://tldp.org/HOWTO/Program-Librar...libraries.html
Ca permet de pouvoir invoquer des fonctions qui se trouvent dans un .so
__________________
"Most Java programs are so rife with concurrency bugs that they work only by accident" |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com