OVH Cloud OVH Cloud

Ecriture d'une bibliothèque

2 réponses
Avatar
Thomas Baruchel
Bonjour,

j'ai écrit une bibliothèque (en C) et je m'intéresse maintenant
au Makefile ; bien que le projet soit modeste et destiné à être
manipulé par des personnes à même de faire les modifications
nécessaires, j'aimerais être assez complet dans mon Makefile.

Pour le moment, je me content de produire un fichier nommé libXXX.a
à l'aide de l'option -shared de gcc tandis que la procédure d'installation
se contente de le copier dans /usr/local/lib (et les headers dans
/usr/local/include).

Or la plupart des bibliothèques proposent plusieurs fichiers, ainsi que
des *.so

Comme c'est la première fois que je m'intéresse à la question, j'aimerais
être éclairé. Dois-je faire plus que produire un *.a ? Comment faire ?

Cordialement,

--
Thomas Baruchel --- Home Page: http://baruchel.free.fr/~thomas/
write to baruchel at the host called bluebottle dot com
écrire à baruchel chez l'hôte nommé bluebottle point com
(you will be asked for a confirmation the first time you write)

2 réponses

Avatar
Fred
Bonjour,

j'ai écrit une bibliothèque (en C) et je m'intéresse maintenant
au Makefile ; bien que le projet soit modeste et destiné à être
manipulé par des personnes à même de faire les modifications
nécessaires, j'aimerais être assez complet dans mon Makefile.

Pour le moment, je me content de produire un fichier nommé libXXX.a
à l'aide de l'option -shared de gcc tandis que la procédure d'installation
se contente de le copier dans /usr/local/lib (et les headers dans
/usr/local/include).

Or la plupart des bibliothèques proposent plusieurs fichiers, ainsi que
des *.so

Comme c'est la première fois que je m'intéresse à la question, j'aimerais
être éclairé. Dois-je faire plus que produire un *.a ? Comment faire ?

Cordialement,



Bonjour,
Les fichiers .so sont des bibliothèques dynamiques (équivalentes aux dll
de Windows). Il n'est pas nécessaire de fournir les bibliothèques à la
fois en statique (.a) et dynamique (.so). On peut se contenter du .a
Pour créer une bibliothèque dynamique, il faut utiliser l'éditeur de
lien ld.
A+
Fred

Avatar
Laurent Wacrenier
Fred écrit:
Pour créer une bibliothèque dynamique, il faut utiliser l'éditeur de
lien ld.


Pour le faire de manière portable, utiliser GNU libtool.